&gt; But nevertheless, all user-space threading is cooperative.<p>Not necessarily. You can do user-space pre-emptive threading on any system that support pre-emptive signal handlers and that lets you mess around with the stack, particularly if you can generate signals from timers and&#x2F;or IO operations (both of which you can with POSIX timers)