[Haskell-cafe] Waiting for thread to finish
dons at galois.com
Tue Nov 27 11:32:05 EST 2007
> After I have spawned a thread with
> 'forkIO', how can I check if that
> thread work has finished already?
> Or wait for it?
The usual trick I use is to have an MVar that child thread can set when
done, causing the main thread to wait:
main = do
done <- newEmptyMVar
forkIO (fibonacci done)
takeMVar done -- blocks till MVar is full
print "All done"
fibonacci = do
... do some work ..
putMVar done () -- ok, main thread can finish now
More information about the Haskell-Cafe