DragonFly kernel List (threaded) for 2003-07
Re: Call for Developers! Userland threading
I'm still thinking in terms of a staged implementation.
Matthew Dillon wrote:
This pretty much requires that the userland system be capable of
doing the preemption approach.
I think the way to do that is to have a mechanism to trigger
a software interrupt when a message arrives on a port. In pure
user threads, of course, that would happen synchronously. it
could also be implemented synchronously to start with (that is,
the interrupt occurs when Send() or Wait() is called), which
would be analogous to the way the "synchronous" systems calls
This would seems to be a very generalisable mechanism, and keep
things just as concurrent as the application needs.
I'm not saying "let's not implement full LWKT functionality",
I'm saying "let's not *use* full LWKT functionality until
everything is stable, and let's keep the purely synchronous
model available after that". Asynchronous events make things
harder to deal with, and being able to eliminate them from a
program that's making use of signals for *signalling* but not
*concurrency* would improve application stability.
It would also make it easier to model and build testbeds.