1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
$NetBSD: patch-aa,v 1.3 2005/04/12 15:54:21 adam Exp $
--- Tools/gsnd/portaudio/pa_unix_oss/pa_unix_oss.c.orig 2005-03-21 16:25:28.000000000 +0000
+++ Tools/gsnd/portaudio/pa_unix_oss/pa_unix_oss.c
@@ -580,8 +580,10 @@ static int PaHost_CanaryProc( PaHostSoun
static PaError PaHost_WatchDogProc( PaHostSoundControl *pahsc )
{
PaError result = 0;
+#ifndef _PTH_PTHREAD_H_
struct sched_param schp = { 0 };
int maxPri;
+#endif
#ifdef GNUSTEP
GSRegisterCurrentThread(); /* SB20010904 */
@@ -589,6 +591,7 @@ static PaError PaHost_WatchDogProc( PaHo
/* Run at a priority level above audio thread so we can still run if it hangs. */
/* Rise more than 1 because of rumored off-by-one scheduler bugs. */
+#ifndef _PTH_PTHREAD_H_
schp.sched_priority = pahsc->pahsc_AudioPriority + 4;
maxPri = sched_get_priority_max(SCHEDULER_POLICY);
if( schp.sched_priority > maxPri ) schp.sched_priority = maxPri;
@@ -598,6 +601,7 @@ static PaError PaHost_WatchDogProc( PaHo
ERR_RPT(("PaHost_WatchDogProc: cannot set watch dog priority!\n"));
goto killAudio;
}
+#endif
/* Compare watchdog time with audio and canary thread times. */
/* Sleep for a while or until thread cancelled. */
@@ -633,6 +637,7 @@ static PaError PaHost_WatchDogProc( PaHo
return 0;
lowerAudio:
+#ifndef _PTH_PTHREAD_H_
{
struct sched_param schat = { 0 };
if( sched_setscheduler(pahsc->pahsc_AudioThreadPID, SCHED_OTHER, &schat) != 0)
@@ -646,6 +651,7 @@ lowerAudio:
goto cleanup;
}
}
+#endif
killAudio:
ERR_RPT(("PaHost_WatchDogProc: killing hung audio thread!\n"));
@@ -740,7 +746,9 @@ static PaError PaHost_BoostPriority( int
{
PaHostSoundControl *pahsc;
PaError result = paNoError;
+#ifndef _PTH_PTHREAD_H_
struct sched_param schp = { 0 };
+#endif
pahsc = (PaHostSoundControl *) past->past_DeviceData;
if( pahsc == NULL ) return paInternalError;
@@ -748,6 +756,7 @@ static PaError PaHost_BoostPriority( int
pahsc->pahsc_AudioThreadPID = getpid();
DBUG(("PaHost_BoostPriority: audio PID = %d\n", pahsc->pahsc_AudioThreadPID ));
+#ifndef _PTH_PTHREAD_H_
/* Choose a priority in the middle of the range. */
pahsc->pahsc_AudioPriority = (sched_get_priority_max(SCHEDULER_POLICY) -
sched_get_priority_min(SCHEDULER_POLICY)) / 2;
@@ -763,6 +772,7 @@ static PaError PaHost_BoostPriority( int
/* We are running at high priority so we should have a watchdog in case audio goes wild. */
result = PaHost_StartWatchDog( pahsc );
}
+#endif
return result;
}
|