network-run 0.4.4 → 0.5.0
raw patch · 3 files changed
+15/−9 lines, 3 filesdep ~time-manager
Dependency ranges changed: time-manager
Files
- CHANGELOG.md +6/−0
- Network/Run/TCP/Timeout.hs +7/−7
- network-run.cabal +2/−2
CHANGELOG.md view
@@ -1,5 +1,11 @@ # Revision history for network-run +## 0.5.0++* Fixing a bug that TimeoutServer is not killed.+* Breaking change: the signatures of Timeout.runTCPServer and + Timeout.runTCPServerWithSocket are changed.+ ## 0.4.3 * Using time-manager >= 0.2.
Network/Run/TCP/Timeout.hs view
@@ -37,8 +37,8 @@ -- ^ Timeout in second. -> Maybe HostName -> ServiceName- -> TimeoutServer a- -> IO a+ -> TimeoutServer ()+ -> IO () runTCPServer tm mhost port server = do addr <- resolve Stream mhost port [AI_PASSIVE] NE.head E.bracket (openTCPServerSocket addr) close $ \sock ->@@ -50,13 +50,13 @@ :: Int -- ^ Timeout in second. -> Socket- -> TimeoutServer a- -> IO a+ -> TimeoutServer ()+ -> IO () runTCPServerWithSocket tm sock server = do T.withManager (tm * 1000000) $ \mgr -> forever $ E.bracketOnError (accept sock) (close . fst) $ \(conn, _peer) ->- void $ forkFinally (server' mgr conn) (const $ gclose conn)+ void $ forkFinally (runServer mgr conn) (const $ gclose conn) where- server' mgr conn = do+ runServer mgr conn = do labelMe "TCP timeout server"- T.withHandle mgr (return ()) $ \th -> server mgr th conn+ T.withHandleKillThread mgr (return ()) $ \th -> server mgr th conn
network-run.cabal view
@@ -1,6 +1,6 @@ cabal-version: >=1.10 name: network-run-version: 0.4.4+version: 0.5.0 license: BSD3 license-file: LICENSE maintainer: kazu@iij.ad.jp@@ -27,4 +27,4 @@ base >=4 && <5, bytestring, network >=3.2.4,- time-manager >=0.2 && <0.3+ time-manager >=0.2 && <0.4