--- Michael Lazzaro <[EMAIL PROTECTED]> wrote: > > On Tuesday, May 27, 2003, at 01:16 PM, Austin Hastings wrote: > > I like and agree with some of what you've been saying. I too think > that > > there's a case of "an x is just a y with ..." underlying the whole > > coro/thread/parallel thing. That's why I'm in favor of > deconstructing > > the threading thing -- a lower thread overhead means more people > can > > spawn more threads for lower cost. > (snip) > > So with that in mind, see my enormous proposal from April 15th. I > think > > that coroutine behavior could be coded with the stuff I proposed, > maybe > > with a few helper items added in. > > Yes, I just re-read it. Of what you wrote, the one thing I'd like to > > think extra hard about is whether we really _need_ the fork()-like > behavior of threads, at all. No, seriously. Stop laughing! > > If we could think about "threads" not in terms of forkyness, but > simply > in terms of coroutines that can be called in parallel, it should be > possible to create an implementation of "threading" that had to do a > whole heck-of-a-lot less duplication of state, etc. Things "outside" > the scope of the thread group would automatically be shared(?), > things "inside" the thread group would not be shared unless > explicitly marked as such. > > Which, if I read it right, is what you proposed too, but with a > slightly different syntax.
Right. My call was that we should share everything except the innermost context -- and that was just to allow the coder to keep some status variables differentiating parent from child. > > That _might_ make threads a heck of a lot faster upon > creation/startup, and a lot less bulky in general. That's the Objective: I want both "implicit threading" -- cases where the interpreter could automatically spawn off parallel processing without being invited to -- and "explicit threading" to coexist. =Austin