On 29 Nov 2002, Alastair Reid wrote:

> Consider Haskell functions a,b,c,d and C functions A,B,C,D and a call
> pattern
> 
>   a -> A -> b -> B -> c -> C -> d -> D
> 
> That is, a calls A, calls b, calls B, calls ...
> 
> Suppose we want A,B,C,D executed by the same foreign thread.
> 
> Each of a,b,c,d are executed by different Haskell threads (because a
> new Haskell thread is spawned for each call into Haskell) so we have
> multiple Haskell threads associated with a single foreign thread.

It doesn't feel right to me that a,b,c,d are executed by different Haskell
threads.  Why shouldn't they all be the *same* Haskell thread?

1. Reasonable exception handling across the Haskell/foreign boundary is
not currently supported, but if we imagine moving in that direction, it
would seem we'd want a single thread for the given example.

2. Calling from foreign code into Haskell to a bound foreign import will
require some special handling to ensure that a subsequent call out to
foreign code will use the same native thread.  Why couldn't this special
handling select the same Haskell thread instead of creating a new one?

Dean

_______________________________________________
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to