From: Paul Baxter <paje_at_[hidden]>
>
> That's not to say that alternatives aren't worth designing, but with that
> and the gnu pthreads project
> http://www.gnu.org/software/pth/pth.html> which could be wrapped up into C++, there are good quality alternatives
> already.

This is a non-preemptive library that I suspect cannot work with C++:

The context switching is done via POSIX [sig]setjmp(3) and [sig]longjmp(3).
Here all CPU registers, the program counter and the stack pointer are switched.
Additionally the Pth dispatcher switches also the global Unix errno variable
[see pth_mctx.c for details] and the signal mask (either implicitly via sigsetjmp(3)
or in an emulated way via explicit setprocmask(2) calls).

In my experience this approach has bad interactions with exception handling.