Hoi Norbert--
In 2003, while implementing remote messaging for what became the Naiad distributed module system[1], I noticed excessive CPU usage during idle by Squeak on MacOSX (and extremely poor remote messaging performance). I prepared alternate versions of ioRelinquishProcessorForMicroseconds, comparing:
- select() (AKA aioSleepForUsecs in Ian's aio API, my starting point) - pthread_cond_timedwait() - nanosleep()
pthread_cond_timedwait was the clear winner at the time. I wrote my own relinquish primitive as part of the Flow external streaming plugin[2], and I've been using it ever since. Still seems fine. I've mentioned this before.
thanks,
-C
[1] http://netjam.org/naiad [1] http://netjam.org/flow
-- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)