on master help sign in
fixing a bug of waiter.
commit282ae3f3e80c04a22df171617c920f534a1619d1 authorKazu Yamamoto <kazu@iij.ad.jp> dateSun 20 Dec 2015, 15:01 (11 years ago) parent8e05db4
1 file changed+3−2
warp/Network/Wai/Handler/Warp/HTTP2/Sender.hs+3−2
warp/Network/Wai/Handler/Warp/HTTP2/Sender.hs+3−2
@@ -7,6 +7,7 @@ module Network.Wai.Handler.Warp.HTTP2.Sender (frameSender) where
77#if __GLASGOW_HASKELL__ < 709
88import Control.Applicative
99#endif
10+import Control.Concurrent (forkIO)
1011import Control.Concurrent.STM
1112import qualified Control.Exception as E
1213import Control.Monad (unless, void, when)
@@ -154,13 +155,13 @@ frameSender ctx@Context{outputQ,controlQ,connectionWindow,encodeDynamicTable}
154155 checkStreaming tbq = do
155156 isEmpty <- atomically $ isEmptyTBQueue tbq
156157 if isEmpty then
157− enqueueWhenReady (waitStreaming tbq) outputQ out
158+ void . forkIO $ enqueueWhenReady (waitStreaming tbq) outputQ out
158159 else
159160 checkStreamWindowSize
160161 checkStreamWindowSize = do
161162 sws <- getStreamWindowSize strm
162163 if sws == 0 then do
163− enqueueWhenReady (waitStreamWindowSize strm) outputQ out
164+ void . forkIO $ enqueueWhenReady (waitStreamWindowSize strm) outputQ out
164165 else
165166 body sws
166167 resetStream e = do