on master help sign in
dummyCleaner
commit6321a58b5d9dc40c428811ef6b7c40b56e03c90d authorMichael Snoyman <michael@snoyman.com> dateFri 12 Oct 2012, 13:05 (14 years ago) parentc6f7f10
4 files changed+21−1
warp/Network/Wai/Handler/Warp.hs+1 warp/Network/Wai/Handler/Warp/Timeout.hs+8 warp/Network/Wai/Handler/Warp/Types.hs+11 warp/warp.cabal+1−1
warp/Network/Wai/Handler/Warp.hs+1
@@ -54,6 +54,7 @@ module Network.Wai.Handler.Warp (
5454 -- * Internal
5555 , parseRequest
5656 , sendResponse
57+ , dummyCleaner
5758 , socketConnection
5859#if TEST
5960 , takeHeaders
warp/Network/Wai/Handler/Warp/Timeout.hs+8
@@ -9,6 +9,7 @@ module Network.Wai.Handler.Warp.Timeout (
99 , resume
1010 , cancel
1111 , withManager
12+ , dummyHandle
1213 ) where
1314
1415import Control.Concurrent (forkIO, threadDelay, myThreadId, killThread)
@@ -16,6 +17,7 @@ import qualified Control.Exception as E
1617import Control.Monad (forever)
1718import Control.Monad (void)
1819import qualified Data.IORef as I
20+import System.IO.Unsafe (unsafePerformIO)
1921
2022-- FIXME implement stopManager
2123
@@ -23,8 +25,14 @@ import qualified Data.IORef as I
2325newtype Manager = Manager (I.IORef [Handle])
2426
2527-- | A handle used by 'Manager'
28+--
29+-- First field is action to be performed on timeout.
2630data Handle = Handle (IO ()) (I.IORef State)
2731
32+-- | A dummy @Handle@.
33+dummyHandle :: Handle
34+dummyHandle = Handle (return ()) (unsafePerformIO $ I.newIORef Active)
35+
2836data State = Active | Inactive | Paused | Canceled
2937
3038initialize :: Int -> IO Manager
warp/Network/Wai/Handler/Warp/Types.hs+11
@@ -78,11 +78,22 @@ data Connection = Connection
7878
7979----------------------------------------------------------------
8080
81+-- | A dummy @Cleaner@, intended for applications making use of the low-level
82+-- request parsing and rendering functions.
83+--
84+-- Since 1.3.4
85+dummyCleaner :: Cleaner
86+
8187#if SENDFILEFD
88+dummyCleaner = Cleaner T.dummyHandle Nothing
89+
8290data Cleaner = Cleaner {
8391 threadHandle :: T.Handle
8492 , fdCacher :: Maybe F.MutableFdCache
8593 }
94+
8695#else
96+dummyCleaner = Cleaner T.dummyHandle
97+
8798newtype Cleaner = Cleaner { threadHandle :: T.Handle }
8899#endif
warp/warp.cabal+1−1
@@ -1,5 +1,5 @@
11Name: warp
2−Version: 1.3.3.3
2+Version: 1.3.4
33Synopsis: A fast, light-weight web server for WAI applications.
44License: MIT
55License-file: LICENSE