Alastair Reid wrote: > Design > ~~~~~~ > > Haskell threads may be associated at thread creation time with either > zero or one native threads. There are only two ways to create Haskell > threads so there are two cases to consider:
Umm, Alastair, I think you've got things a bit mixed up here. Did you mean two ways to create a native thread? There are currently three ways to create a Haskell thread (forkIO, foreign export, finalizers) and Wolfgang has proposed a fourth (forkNativeThread). Or perhaps you're proposing we do away with forkIO and only have forkNativeThread? That was discounted a while back because we want to continue to have light-weight threads independent of OS threads. > 1) forkNativeThread :: IO () -> IO () > > The fresh Haskell thread is associated with a fresh native thread. > > (ToDo: do we really need to use a fresh native thread or would a > pool of threads be ok? The issue could be avoided by separating > creation of the native thread from the 'associate' operation.) > > 2) Calls to a threadsafe foreign export allocate a fresh Haskell > thread which is then associated with the Haskell thread. I don't know what you mean by a "threadsafe foreign export". Did you mean "threadsafe foreign import" perhaps? And I'm not sure how a fresh Haskell thread is associated with a Haskell thread ;-) > Calls to threadsafe foreign imports by threads which have an > associated native thread are performed by that native thread. > > Calls to any other foreign imports (i.e., 'safe' or 'unsafe' calls) > may be made in other threads or, if it exists, in the associated > native thread at the implementation's discretion. > > [ToDo: can Haskell threads with no associated thread make foreign > calls using a thread associated with some other thread? er... overloading the word "thread" was maybe not such a good idea. I think you're asking whether a green thread can grab a native thread to make a foreign call. The current answer is no... but can you think of a reason we might want this feature? Cheers, Simon _______________________________________________ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users