summaryrefslogtreecommitdiff
path: root/fig-bus/src/Fig/Bus/Binary/Client.hs
diff options
context:
space:
mode:
Diffstat (limited to 'fig-bus/src/Fig/Bus/Binary/Client.hs')
-rw-r--r--fig-bus/src/Fig/Bus/Binary/Client.hs16
1 files changed, 7 insertions, 9 deletions
diff --git a/fig-bus/src/Fig/Bus/Binary/Client.hs b/fig-bus/src/Fig/Bus/Binary/Client.hs
index 39798cd..3ee9050 100644
--- a/fig-bus/src/Fig/Bus/Binary/Client.hs
+++ b/fig-bus/src/Fig/Bus/Binary/Client.hs
@@ -35,16 +35,14 @@ busClient loc@(host, port) onConn onData onQuit = do
let
cmds = Commands
{ subscribe = \ev -> do
- () <- MVar.takeMVar lock
- hPut h "s"
- writeLengthPrefixed h ev
- MVar.putMVar lock ()
+ MVar.withMVar lock \_ -> do
+ hPut h "s"
+ writeLengthPrefixed h ev
, publish = \ev d -> do
- () <- MVar.takeMVar lock
- hPut h "p"
- writeLengthPrefixed h ev
- writeLengthPrefixed h d
- MVar.putMVar lock ()
+ MVar.withMVar lock \_ -> do
+ hPut h "p"
+ writeLengthPrefixed h ev
+ writeLengthPrefixed h d
}
in
( do