@@ -63,14 +63,7 @@ gracefulClose s tmout = sendRecvFIN `E.finally` close s
63
63
shutdown s ShutdownSend
64
64
-- Waiting TCP FIN.
65
65
E. bracket (mallocBytes bufSize) free $ \ buf -> do
66
- #if defined(mingw32_HOST_OS)
67
66
{-# SCC "" #-} recvEOFloop buf
68
- #else
69
- mevmgr <- Ev. getSystemEventManager
70
- case mevmgr of
71
- Nothing -> recvEOFloop buf -- non-threaded RTS
72
- Just evmgr -> recvEOFev evmgr buf
73
- #endif
74
67
-- milliseconds. Taken from BSD fast clock value.
75
68
clock = 200
76
69
recvEOFloop buf = loop 0
@@ -86,35 +79,6 @@ gracefulClose s tmout = sendRecvFIN `E.finally` close s
86
79
when (r == - 1 && delay' < tmout) $ do
87
80
threadDelay (clock * 1000 )
88
81
loop delay'
89
- #if !defined(mingw32_HOST_OS)
90
- recvEOFev evmgr buf = do
91
- -- Checking if FIN is already received.
92
- r <- recvBufNoWait s buf bufSize
93
- when (r == - 1 ) $ do
94
- tmmgr <- Ev. getSystemTimerManager
95
- mvar <- newEmptyMVar
96
- E. bracket (register evmgr tmmgr mvar) (unregister evmgr tmmgr) $ \ _ -> do
97
- wait <- takeMVar mvar
98
- case wait of
99
- TimeoutTripped -> return ()
100
- MoreData -> void $ recvBufNoWait s buf bufSize
101
- register evmgr tmmgr mvar = do
102
- -- millisecond to microsecond
103
- key1 <- Ev. registerTimeout tmmgr (tmout * 1000 ) $
104
- void $ tryPutMVar mvar TimeoutTripped
105
- key2 <- withFdSocket s $ \ fd' -> do
106
- let callback _ _ = void $ tryPutMVar mvar MoreData
107
- fd = Fd fd'
108
- #if __GLASGOW_HASKELL__ < 709
109
- Ev. registerFd evmgr callback fd Ev. evtRead
110
- #else
111
- Ev. registerFd evmgr callback fd Ev. evtRead Ev. OneShot
112
- #endif
113
- return (key1, key2)
114
- unregister evmgr tmmgr (key1,key2) = do
115
- Ev. unregisterTimeout tmmgr key1
116
- Ev. unregisterFd evmgr key2
117
- #endif
118
82
-- Don't use 4092 here. The GHC runtime takes the global lock
119
83
-- if the length is over 3276 bytes in 32bit or 3272 bytes in 64bit.
120
84
bufSize = 1024
0 commit comments