Re: Invariants for GHC.Event ensureIOManagerIsRunning
On 14/04/2012 04:53, Edward Z. Yang wrote: Hello all, I recently ran into a rather reproduceable bug where I would get this error from the event manager: /dev/null: hClose: user error (Pattern match failure in do expression at libraries/base/System/Event/Thread.hs:83:3-10) The program was doing some rather strange things: - It was running the Haskell RTS inside another system (Urweb) which was making use of pthreads, sockets, etc. - The Haskell portion was linked against the threaded RTS, and doing communication with a process. and is rather complicated (two compilers are involved). But the gist of the matter is that if I added a quick call to ensureIOManagerIsRunning after hs_init, the error went away. So, if the IO manager is not eagerly loaded at the call to hs_init, how do we decided when it should be loaded? It seems probably that we missed a case. Edward P.S. I tried reproducing on a simple test case but couldn't manage it. Looking at the code I can't see how that can happen, so if you do manage to reproduce it on a small example, please file a bug. Cheers, Simon ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Re: Invariants for GHC.Event ensureIOManagerIsRunning
The intention is that the I/O manager should start with the RTS. It's started in hs_init_ghc if you're running the threaded RTS. I don't know enough about using ghc as a library to know if it needs to be started in some other context as well. -- Johan ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Invariants for GHC.Event ensureIOManagerIsRunning
Hello all, I recently ran into a rather reproduceable bug where I would get this error from the event manager: /dev/null: hClose: user error (Pattern match failure in do expression at libraries/base/System/Event/Thread.hs:83:3-10) The program was doing some rather strange things: - It was running the Haskell RTS inside another system (Urweb) which was making use of pthreads, sockets, etc. - The Haskell portion was linked against the threaded RTS, and doing communication with a process. and is rather complicated (two compilers are involved). But the gist of the matter is that if I added a quick call to ensureIOManagerIsRunning after hs_init, the error went away. So, if the IO manager is not eagerly loaded at the call to hs_init, how do we decided when it should be loaded? It seems probably that we missed a case. Edward P.S. I tried reproducing on a simple test case but couldn't manage it. ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users