The plan9port code depends on the operating system's pthreads
being real kernel-level threads, not a fake user-level simulation.
The user-level simulations are not good enough, because
on the x86 they cut corners and use the stack pointer
to locate the thread-local state.  The Plan 9 threaded
programs manage their own stacks, making it impossible
for the user-space simulations to find their thread-local state.

Most Linux distributions switched to real threads (i.e., dropped
LinuxThreads in favor of NPTL) around the time they switched
to the 2.6 kernel.  FreeBSD switched in the FreeBSD 5 release.

Last I had heard, OpenBSD was still plodding along with
user-level threads.  Until they fix that, programs like acme
will not run.

Russ

Reply via email to