> this ain't exactly true. Currently in MT environment the task of data > separation is pushed to the TSRM by using TLS. Now, if TSRM is > reimplemented in a fashion that the data is not stored by using TLS but > other mechanism and cooperative multitasking is not something that > can't be done. > The truth is that userland is isolated from the process data space so for > it it won't make a difference. It's just that using threads for separation is > the easiest thing (after process per script). The good thing is that TSRM > is an abstraction for its clients.
How could we make this work in the absence of TSRM, though? I'm operating under the assumption that any solution would need to work the same way outside the auspices of TSRM. With process forking you'd be talking about pretty complex inter-process signaling to try and accomplish equivalent multitasking. This doesn't seem at all feasible to me on first glance (though I've been wrong plenty of times in the past).