[Xmonad] xmobar-0.7rc1 testers needed
Spencer Janssen
sjanssen at cse.unl.edu
Tue Jul 17 13:54:38 EDT 2007
On Tuesday 17 July 2007 12:27:38 Andrea Rossato wrote:
> Hi,
>
> today I added XEvents handling to xmobar, a status bar you should know
> I'm writing.
>
> Now, this is more difficult of what I first thought, since xmobar makes
> heavy use of Haskell threads.
>
> Since we need to call XNextEvent, it seems, as far as I can
> understand, that this is going to block every other Haskell threads,
> unless the threaded RTS is used and/or (?) forkOS (which requires
> anyway the threaded RTS) is used instead of forkIO.
Here is the relevant source from X11:
foreign import ccall safe "HsXlib.h XNextEvent"
nextEvent :: Display -> XEventPtr -> IO ()
The "safe" bit means that the FFI call will run in it's own OS thread -- it
shouldn't block any Haskell threads. However, I believe that Xlib has
internal locking that will cause XNextEvent to block all other Xlib calls.
If forkOS changes the behavior here, we most likely have a mismarked "unsafe"
function in X11.
> While this is working fine on my system, I have a system with an old
> Xorg build (I cannot compile X11-1.2.2 and X11-extras on that
> machine), which seem to block all threads no matter what I do. This is
> not a valuable test for me, so I need testers to confirm or refute my
> personal test.
I believe this is XNextEvent blocking other threads. I've got an idea for a
solution, expect another email shortly :).
Cheers,
Spencer Janssen
More information about the Xmonad
mailing list