$NetBSD: patch-aa,v 1.2 2003/12/05 10:06:39 adam Exp $ --- Tools/gsnd/portaudio/pa_unix_oss/pa_unix_oss.c.orig 2003-07-20 04:08:22.000000000 +0200 +++ Tools/gsnd/portaudio/pa_unix_oss/pa_unix_oss.c @@ -584,8 +584,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 */ @@ -593,6 +595,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; @@ -602,6 +605,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. */ @@ -637,6 +641,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) @@ -650,6 +655,7 @@ lowerAudio: goto cleanup; } } +#endif killAudio: ERR_RPT(("PaHost_WatchDogProc: killing hung audio thread!\n")); @@ -744,7 +750,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; @@ -752,6 +760,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; @@ -767,6 +776,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; }