aboutsummaryrefslogtreecommitdiffstats
path: root/src/Reaktor.hs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2019-01-29 20:49:47 +0100
committertv <tv@krebsco.de>2019-01-29 20:50:31 +0100
commit9f4e2644188f985d7cd806c13e2c0dee1688b9f0 (patch)
treeb7b99a856bcab4caee867936dd759e832d7547c3 /src/Reaktor.hs
parent92ca5dbea78d4520e1cc0a3162cee2bbeb6c4c88 (diff)
Reaktor: add send delay supportv0.2.2
Diffstat (limited to 'src/Reaktor.hs')
-rw-r--r--src/Reaktor.hs11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/Reaktor.hs b/src/Reaktor.hs
index 042fcfe..0910e0b 100644
--- a/src/Reaktor.hs
+++ b/src/Reaktor.hs
@@ -86,7 +86,7 @@ run Config{..} getPlugins =
receiver actions putInMsg sockRecv,
logger cLogHandle takeLog,
pinger aSend,
- sender takeOutMsg sockSend,
+ sender cSendDelay takeOutMsg sockSend,
splitter plugins takeInMsg
]
@@ -147,9 +147,12 @@ receiver Actions{..} putInMsg sockRecv =
aLog $ SGR [38,5,235] "< " <> SGR [38,5,244] (Plain bs)
-sender :: IO Message -> (ByteString -> IO ()) -> IO ()
-sender takeOutMsg sockSend =
- forever $ takeOutMsg >>= sockSend . T.encodeUtf8 . formatMessage
+sender :: Maybe Int -> IO Message -> (ByteString -> IO ()) -> IO ()
+sender cSendDelay takeOutMsg sockSend =
+ forever send
+ where
+ send = maybe send0 ((send0 >>) . threadDelay) cSendDelay
+ send0 = takeOutMsg >>= sockSend . T.encodeUtf8 . formatMessage
splitter :: [Message -> IO ()] -> IO Message -> IO ()
splitter plugins takeInMsg =