
Hello John, Saturday, April 1, 2006, 4:53:00 AM, you wrote:
In an implementation which runs more than one Haskell thread inside one OS thread, like ghc without -threaded or hugs, the threads are NOT completely independent, because they share one C stack. So while
no, state-threads, a la NSPR, state-threads.sf.net, or any other of a bunch of implementations.
each thread has its own stack, you 'longjmp' between them. it can almost practically be done in portable C except the mallocing of the new stack,
new stacks can be allocated by alloca() calls. all these alloca-allocated stack segments can be used as pool of stacks assigned to the forked threads. although i don't tried this, my own library also used processor-specific method. i planned to suggest this to the ghc-via-C compilation we are discussed on February. it's great that the libs already exists. why you don't implement this himself, at least in cooperative (yield-driven) manner? -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com