summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--XMonad/Core.hs10
1 files changed, 7 insertions, 3 deletions
diff --git a/XMonad/Core.hs b/XMonad/Core.hs
index 84b1311..80006b8 100644
--- a/XMonad/Core.hs
+++ b/XMonad/Core.hs
@@ -324,9 +324,13 @@ recompile = do
let msg = unlines $
["Error detected while loading xmonad configuration file: " ++ src]
++ lines ghcErr ++ ["","Please check the file for errors."]
-
- waitForProcess =<< runProcess "xmessage" [msg]
- Nothing Nothing Nothing Nothing Nothing
+ -- usual double fork for async processes, and no zombies.
+ -- careful to use exec directly, avoiding shell
+ -- interpreting chars in the command line args
+ pid <- forkProcess $ do
+ forkProcess $ createSession >> executeFile "xmessage" True [msg] Nothing
+ exitWith ExitSuccess
+ getProcessStatus True False pid
return ()
-- | Run a side effecting action with the current workspace. Like 'when' but