diff options
author | Joey Hess <joey@kitenet.net> | 2014-02-13 14:00:15 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-02-13 15:53:10 -0400 |
commit | 4f59f9439687cccfb7aac6aca62dbe97038179bf (patch) | |
tree | 94d8fa2e00989c183a20db782b8c5e9fa0e3ff9b /Assistant.hs | |
parent | 16405cbd31e2ee5a2ef021a1c178738709b087c3 (diff) |
windows: Fix process termination code.
The ctrl-c hack used before didn't actually seem to work.
No haskell libraries expose TerminateProcess. I tried just calling it via
FFI, but got segfaults, probably to do with the wacky process handle not
being managed correctly. Moving it all into one C function worked.
This was hell. The EvilLinker hack was just final icing on the cake.
We all know what the cake was made of.
Diffstat (limited to 'Assistant.hs')
-rw-r--r-- | Assistant.hs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Assistant.hs b/Assistant.hs index 800a3ef78..c66a1b73b 100644 --- a/Assistant.hs +++ b/Assistant.hs @@ -93,7 +93,8 @@ startDaemon assistant foreground startdelay cannotrun listenhost startbrowser = start (Utility.Daemon.daemonize logfd (Just pidfile) False) Nothing #else -- Windows is always foreground, and has no log file. - start id $ + liftIO $ Utility.Daemon.lockPidFile pidfile + start id $ do case startbrowser of Nothing -> Nothing Just a -> Just $ a Nothing Nothing |