[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: ITS#3950



At present, we only replace sched_yield(2) on Linux as
the replacements are non-portable.  If other operating
systems are known to have problem sched_yield(2)
implementations, I suggest filing a separate ITS with
details and suggested replacement.

Kurt

At 07:18 AM 1/6/2006, Igor Brezac wrote:


>On Thu, 5 Jan 2006, Kurt D. Zeilenga wrote:
>
>>At 08:05 PM 1/5/2006, Kurt D. Zeilenga wrote:
>>>>I suppose we could devise some kind of test that uses two processes, one that spins eating CPU cycles, and another that spawns one thread that does a yield, while the main thread does a computation. If the yield causes the entire process to lose the CPU, the main thread's computation will be impeded. But it may be better to just test $build_os for now.
>>>
>>>For now, yes
>>
>>Okay, I've committed a basic detection code for
>>REPLACE_SCHED_YIELD as well as updated replacement
>>code.  Currently uses select(2), but can be switched
>>to nanosleep(2).
>>
>>I've only tested on FreeBSD4 where this is a no-op.
>>Now pushing to a Linux box for real testing.
>
>nanosleep(2) should work on Solaris (at least 8, 9 and 10) as well.
>
>-- 
>Igor