Use gethrtime() (if available) to find out when to switch threads. Also, use thr_yield (again, if available) to really switch threads. This increased the number of threadswitches/second with 10 while(1) threads on solaris from 0.01 to 12. Rev: src/configure.in:1.483 Rev: src/threads.c:1.156