
On Mon, Sep 24, 2007 at 06:30:54PM +0100, Andy Gimblett wrote:
Andrea, Why can xmobar read from a file but not a named pipe?
To read a named pipe you must wait for output. The problem is that xombar waits for XEvents and a timer. To make things even more complicated there is the problem of threads and foreign blocks. If a foreign call is blocking, then all other Haskell thread will be blocked. To avoid that you can use operating system threads. But this means a 30% memory consumption increase. Which is a lot for a status bar. The author of the miracle of a non foreign block for waiting XEvents is Spencer, btw. In any case as far as I remember waiting for a pipe is a foreign call, and I don't want to switch to operating system threads. Not after all the noise I made to have a non blocking nextEvent... I'm open to discussion though. Cheers, Andrea