summaryrefslogtreecommitdiffhomepage
path: root/WebSockets.hs
diff options
context:
space:
mode:
Diffstat (limited to 'WebSockets.hs')
-rw-r--r--WebSockets.hs18
1 files changed, 9 insertions, 9 deletions
diff --git a/WebSockets.hs b/WebSockets.hs
index 7a53c8c..8aec057 100644
--- a/WebSockets.hs
+++ b/WebSockets.hs
@@ -164,16 +164,16 @@ clientApp
-> (AnyMessage -> Maybe received)
-> (TMChan sent -> TMChan (MissingHashes received) -> SessionID -> IO a)
-> ClientApp a
-clientApp mode mksent filterreceived a conn = do
+clientApp mode mksent filterreceived a conn =
-- Ping every 30 seconds to avoid timeouts caused by proxies etc.
- forkPingThread conn 30
- _v <- negotiateWireVersion conn
- sendBinaryData conn (SelectMode ClientSends mode)
- r <- receiveData conn
- case r of
- Ready ServerSends sid -> bracket setup cleanup (go sid)
- WireProtocolError e -> error e
- _ -> protocolError conn "Did not get expected Ready message from server"
+ withPingThread conn 30 (return ()) $ do
+ _v <- negotiateWireVersion conn
+ sendBinaryData conn (SelectMode ClientSends mode)
+ r <- receiveData conn
+ case r of
+ Ready ServerSends sid -> bracket setup cleanup (go sid)
+ WireProtocolError e -> error e
+ _ -> protocolError conn "Did not get expected Ready message from server"
where
setup = do
schan <- newTMChanIO