> forkChild :: IO () -> IO (MVar ()) > forkChild p = do > mvar <- newEmptyMVar > forkIO (p >> putMVar mvar ()) > return mvar A slightly better version: > import Exception > > forkChild :: IO () -> IO (MVar ()) > forkChild p = do > mvar <- newEmptyMVar > forkIO (p `finally` putMVar mvar ()) > return mvar which catches exceptions as well as clean exits from the forked thread. Cheers, Simon
- NON-daemonic forking George Russell
- Re: NON-daemonic forking Michael Weber
- Re: NON-daemonic forking George Russell
- Re: NON-daemonic forking Michael Weber
- RE: NON-daemonic forking Simon Marlow
- RE: NON-daemonic forking Simon Marlow