diff options
Diffstat (limited to 'hsm-core')
-rw-r--r-- | hsm-core/Hsm/Core/Zmq/Client.hs | 24 | ||||
-rw-r--r-- | hsm-core/Hsm/Core/Zmq/Server.hs | 20 |
2 files changed, 24 insertions, 20 deletions
diff --git a/hsm-core/Hsm/Core/Zmq/Client.hs b/hsm-core/Hsm/Core/Zmq/Client.hs index 97728f7..aa74ed3 100644 --- a/hsm-core/Hsm/Core/Zmq/Client.hs +++ b/hsm-core/Hsm/Core/Zmq/Client.hs @@ -75,14 +75,16 @@ runClient :: ) => Eff (Client : es) a -> Eff es a -runClient action = - withSocket Z.Sub >>= \sock -> - E.evalStaticRep (Client sock) $ do - localDomain domain $ do - logInfo_ "Initializing ZMQ client" - env <- ask @env - forM_ env.subEps $ E.unsafeEff_ . Z.connect sock . unpack - forM_ env.topics $ E.unsafeEff_ . Z.subscribe sock . encodeUtf8 - logTrace_ $ "Listening to " <> pack (show env.subEps) - logTrace_ $ "Subscribed to " <> pack (show env.topics) - action +runClient action = do + sock <- localDomain domain $ withSocket Z.Sub + E.evalStaticRep (Client sock) $ do + localDomain domain $ initialize sock + action + where + initialize sock = do + logInfo_ "Initializing ZMQ client" + env <- ask @env + forM_ env.subEps $ E.unsafeEff_ . Z.connect sock . unpack + forM_ env.topics $ E.unsafeEff_ . Z.subscribe sock . encodeUtf8 + logTrace_ $ "Listening to " <> pack (show env.subEps) + logTrace_ $ "Subscribed to " <> pack (show env.topics) diff --git a/hsm-core/Hsm/Core/Zmq/Server.hs b/hsm-core/Hsm/Core/Zmq/Server.hs index 6ea8aeb..fd2f159 100644 --- a/hsm-core/Hsm/Core/Zmq/Server.hs +++ b/hsm-core/Hsm/Core/Zmq/Server.hs @@ -54,12 +54,14 @@ runServer :: ) => Eff (Server : es) a -> Eff es a -runServer action = - withSocket Z.Pub >>= \sock -> - E.evalStaticRep (Server sock) $ do - localDomain domain $ do - logInfo_ "Initializing ZMQ server" - env <- ask @env - E.unsafeEff_ $ Z.bind sock $ unpack env.pubEp - logTrace_ $ "Publishing to " <> env.pubEp - action +runServer action = do + sock <- localDomain domain $ withSocket Z.Pub + E.evalStaticRep (Server sock) $ do + localDomain domain $ initialize sock + action + where + initialize sock = do + logInfo_ "Initializing ZMQ server" + env <- ask @env + E.unsafeEff_ $ Z.bind sock $ unpack env.pubEp + logTrace_ $ "Publishing to " <> env.pubEp |