on master help sign in
removing IORef adaptor module.
1b23493Kazu Yamamoto
warp/Network/Wai/Handler/Warp/FdCache.hs+2−2
@@ -18,9 +18,9 @@ module Network.Wai.Handler.Warp.FdCache (
18import Control.Applicative ((<$>), (<*>))
18import Control.Applicative ((<$>), (<*>))
19#endif
19#endif
20import Control.Exception (bracket)
20import Control.Exception (bracket)
21−import Network.Wai.Handler.Warp.IORef
22−import Network.Wai.Handler.Warp.MultiMap
23import Control.Reaper
21import Control.Reaper
22+import Data.IORef
23+import Network.Wai.Handler.Warp.MultiMap
24import System.Posix.IO (openFd, OpenFileFlags(..), defaultFileFlags, OpenMode(ReadOnly), closeFd, FdOption(CloseOnExec), setFdOption)
24import System.Posix.IO (openFd, OpenFileFlags(..), defaultFileFlags, OpenMode(ReadOnly), closeFd, FdOption(CloseOnExec), setFdOption)
25#endif
25#endif
26import System.Posix.Types (Fd)
26import System.Posix.Types (Fd)
warp/Network/Wai/Handler/Warp/HTTP2/Manager.hs+2−2
@@ -19,10 +19,10 @@ import Control.Applicative
19import Control.Concurrent
19import Control.Concurrent
20import Control.Concurrent.STM
20import Control.Concurrent.STM
21import Control.Monad (void)
21import Control.Monad (void)
22+import Data.Foldable
23+import Data.IORef
22import Data.Set (Set)
24import Data.Set (Set)
23import qualified Data.Set as Set
25import qualified Data.Set as Set
24−import Data.Foldable
25−import Network.Wai.Handler.Warp.IORef
26import Network.Wai.Handler.Warp.Settings
26import Network.Wai.Handler.Warp.Settings
27import qualified Network.Wai.Handler.Warp.Timeout as T
27import qualified Network.Wai.Handler.Warp.Timeout as T
28
28
warp/Network/Wai/Handler/Warp/HTTP2/Receiver.hs+1−1
@@ -15,6 +15,7 @@ import qualified Control.Exception as E
15import Control.Monad (when, unless, void)
15import Control.Monad (when, unless, void)
16import Data.ByteString (ByteString)
16import Data.ByteString (ByteString)
17import qualified Data.ByteString as BS
17import qualified Data.ByteString as BS
18+import Data.IORef
18import Network.HPACK
19import Network.HPACK
19import Network.HPACK.Token
20import Network.HPACK.Token
20import Network.HTTP2
21import Network.HTTP2
@@ -23,7 +24,6 @@ import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
23import Network.Wai.Handler.Warp.HTTP2.HPACK
24import Network.Wai.Handler.Warp.HTTP2.HPACK
24import Network.Wai.Handler.Warp.HTTP2.Request
25import Network.Wai.Handler.Warp.HTTP2.Request
25import Network.Wai.Handler.Warp.HTTP2.Types
26import Network.Wai.Handler.Warp.HTTP2.Types
26−import Network.Wai.Handler.Warp.IORef
27import Network.Wai.Handler.Warp.ReadInt
27import Network.Wai.Handler.Warp.ReadInt
28import Network.Wai.Handler.Warp.Types
28import Network.Wai.Handler.Warp.Types
29
29
warp/Network/Wai/Handler/Warp/HTTP2/Request.hs+1−1
@@ -13,6 +13,7 @@ import Control.Applicative ((<|>))
13import Control.Arrow (first)
13import Control.Arrow (first)
14import Data.ByteString (ByteString)
14import Data.ByteString (ByteString)
15import qualified Data.ByteString.Char8 as B8
15import qualified Data.ByteString.Char8 as B8
16+import Data.IORef
16import Data.Maybe (fromJust)
17import Data.Maybe (fromJust)
17import qualified Data.Vault.Lazy as Vault
18import qualified Data.Vault.Lazy as Vault
18import Network.HPACK
19import Network.HPACK
@@ -22,7 +23,6 @@ import Network.Socket (SockAddr)
22import Network.Wai
23import Network.Wai
23import Network.Wai.Handler.Warp.HTTP2.Types
24import Network.Wai.Handler.Warp.HTTP2.Types
24import Network.Wai.Handler.Warp.HashMap (hashByteString)
25import Network.Wai.Handler.Warp.HashMap (hashByteString)
25−import Network.Wai.Handler.Warp.IORef
26import Network.Wai.Handler.Warp.Request (pauseTimeoutKey, getFileInfoKey)
26import Network.Wai.Handler.Warp.Request (pauseTimeoutKey, getFileInfoKey)
27import qualified Network.Wai.Handler.Warp.Settings as S (Settings, settingsNoParsePath)
27import qualified Network.Wai.Handler.Warp.Settings as S (Settings, settingsNoParsePath)
28import qualified Network.Wai.Handler.Warp.Timeout as Timeout
28import qualified Network.Wai.Handler.Warp.Timeout as Timeout
warp/Network/Wai/Handler/Warp/HTTP2/Sender.hs+1−1
@@ -14,6 +14,7 @@ import Data.Bits
14import qualified Data.ByteString as BS
14import qualified Data.ByteString as BS
15import Data.ByteString.Builder (Builder)
15import Data.ByteString.Builder (Builder)
16import qualified Data.ByteString.Builder.Extra as B
16import qualified Data.ByteString.Builder.Extra as B
17+import Data.IORef
17import Data.Maybe (isNothing)
18import Data.Maybe (isNothing)
18import Data.Word (Word8, Word32)
19import Data.Word (Word8, Word32)
19import Foreign.Ptr (Ptr, plusPtr)
20import Foreign.Ptr (Ptr, plusPtr)
@@ -27,7 +28,6 @@ import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
27import Network.Wai.Handler.Warp.HTTP2.HPACK
28import Network.Wai.Handler.Warp.HTTP2.HPACK
28import Network.Wai.Handler.Warp.HTTP2.Manager (Manager)
29import Network.Wai.Handler.Warp.HTTP2.Manager (Manager)
29import Network.Wai.Handler.Warp.HTTP2.Types
30import Network.Wai.Handler.Warp.HTTP2.Types
30−import Network.Wai.Handler.Warp.IORef
31import qualified Network.Wai.Handler.Warp.Settings as S
31import qualified Network.Wai.Handler.Warp.Settings as S
32import Network.Wai.Handler.Warp.Types
32import Network.Wai.Handler.Warp.Types
33
33
warp/Network/Wai/Handler/Warp/HTTP2/Types.hs+2−2
@@ -4,7 +4,6 @@
4
4
5module Network.Wai.Handler.Warp.HTTP2.Types where
5module Network.Wai.Handler.Warp.HTTP2.Types where
6
6
7−import Data.ByteString.Builder (Builder)
8#if __GLASGOW_HASKELL__ < 709
7#if __GLASGOW_HASKELL__ < 709
9import Control.Applicative ((<$>),(<*>))
8import Control.Applicative ((<$>),(<*>))
10#endif
9#endif
@@ -14,12 +13,13 @@ import Control.Exception (SomeException, bracket)
14import Control.Monad (void, forM_)
13import Control.Monad (void, forM_)
15import Data.ByteString (ByteString)
14import Data.ByteString (ByteString)
16import qualified Data.ByteString as BS
15import qualified Data.ByteString as BS
16+import Data.ByteString.Builder (Builder)
17+import Data.IORef
17import Data.IntMap.Strict (IntMap, IntMap)
18import Data.IntMap.Strict (IntMap, IntMap)
18import qualified Data.IntMap.Strict as M
19import qualified Data.IntMap.Strict as M
19import qualified Network.HTTP.Types as H
20import qualified Network.HTTP.Types as H
20import Network.Wai (Request, FilePart)
21import Network.Wai (Request, FilePart)
21import Network.Wai.Handler.Warp.HTTP2.Manager
22import Network.Wai.Handler.Warp.HTTP2.Manager
22−import Network.Wai.Handler.Warp.IORef
23import Network.Wai.Handler.Warp.Types
23import Network.Wai.Handler.Warp.Types
24
24
25import Network.HTTP2
25import Network.HTTP2
warp/Network/Wai/Handler/Warp/HTTP2/Worker.hs+5−5
@@ -16,25 +16,25 @@ import Control.Applicative
16import Data.Monoid (mempty)
16import Data.Monoid (mempty)
17#endif
17#endif
18import Control.Applicative ((<|>))
18import Control.Applicative ((<|>))
19−import Data.Maybe (fromJust)
20import Control.Concurrent.STM
19import Control.Concurrent.STM
21import Control.Exception (SomeException(..), AsyncException(..))
20import Control.Exception (SomeException(..), AsyncException(..))
22import qualified Control.Exception as E
21import qualified Control.Exception as E
23import Control.Monad (when)
22import Control.Monad (when)
24import Data.ByteString.Builder (byteString)
23import Data.ByteString.Builder (byteString)
24+import Data.IORef
25+import Data.Maybe (fromJust)
26+import Network.HPACK
27+import Network.HPACK.Token
25import qualified Network.HTTP.Types as H
28import qualified Network.HTTP.Types as H
26import Network.HTTP2
29import Network.HTTP2
27import Network.HTTP2.Priority
30import Network.HTTP2.Priority
28−import Network.HPACK
29−import Network.HPACK.Token
30import Network.Wai
31import Network.Wai
31import Network.Wai.Handler.Warp.FileInfoCache
32import Network.Wai.Handler.Warp.FileInfoCache
32import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
33import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
33import Network.Wai.Handler.Warp.HTTP2.File
34import Network.Wai.Handler.Warp.HTTP2.File
34import Network.Wai.Handler.Warp.HTTP2.Manager
35import Network.Wai.Handler.Warp.HTTP2.Manager
35−import Network.Wai.Handler.Warp.HTTP2.Types
36import Network.Wai.Handler.Warp.HTTP2.Request
36import Network.Wai.Handler.Warp.HTTP2.Request
37−import Network.Wai.Handler.Warp.IORef
37+import Network.Wai.Handler.Warp.HTTP2.Types
38import qualified Network.Wai.Handler.Warp.Response as R
38import qualified Network.Wai.Handler.Warp.Response as R
39import qualified Network.Wai.Handler.Warp.Settings as S
39import qualified Network.Wai.Handler.Warp.Settings as S
40import qualified Network.Wai.Handler.Warp.Timeout as T
40import qualified Network.Wai.Handler.Warp.Timeout as T
warp/Network/Wai/Handler/Warp/IORef.hsdeleted−26
@@ -1,26 +0,0 @@
1−{-# LANGUAGE CPP #-}
2−
3−#ifndef MIN_VERSION_base
4−#define MIN_VERSION_base(x,y,z) 1
5−#endif
6−
7−module Network.Wai.Handler.Warp.IORef (
8− module Data.IORef
9−#if !MIN_VERSION_base(4,6,0)
10− , atomicModifyIORef'
11−#endif
12− ) where
13−
14−import Data.IORef
15−
16−#if !MIN_VERSION_base(4,6,0)
17−-- | Strict version of 'atomicModifyIORef'. This forces both the value stored
18−-- in the 'IORef' as well as the value returned.
19−atomicModifyIORef' :: IORef a -> (a -> (a,b)) -> IO b
20−atomicModifyIORef' ref f = do
21− c <- atomicModifyIORef ref
22− (\x -> let (a, b) = f x -- Lazy application of "f"
23− in (a, a `seq` b)) -- Lazy application of "seq"
24− -- The following forces "a `seq` b", so it also forces "f x".
25− c `seq` return c
26−#endif
warp/Network/Wai/Handler/Warp/Recv.hs+1−1
@@ -15,6 +15,7 @@ import Control.Applicative ((<$>))
15import qualified Control.Exception as E
15import qualified Control.Exception as E
16import qualified Data.ByteString as BS
16import qualified Data.ByteString as BS
17import Data.ByteString.Internal (ByteString(..))
17import Data.ByteString.Internal (ByteString(..))
18+import Data.IORef
18import Data.Word (Word8)
19import Data.Word (Word8)
19import Foreign.C.Error (eAGAIN, getErrno, throwErrno)
20import Foreign.C.Error (eAGAIN, getErrno, throwErrno)
20import Foreign.C.Types
21import Foreign.C.Types
@@ -23,7 +24,6 @@ import Foreign.Ptr (Ptr, castPtr, plusPtr)
23import GHC.Conc (threadWaitRead)
24import GHC.Conc (threadWaitRead)
24import Network.Socket (Socket, fdSocket)
25import Network.Socket (Socket, fdSocket)
25import Network.Wai.Handler.Warp.Buffer
26import Network.Wai.Handler.Warp.Buffer
26−import Network.Wai.Handler.Warp.IORef
27import Network.Wai.Handler.Warp.Types
27import Network.Wai.Handler.Warp.Types
28import System.Posix.Types (Fd(..))
28import System.Posix.Types (Fd(..))
29
29
warp/Network/Wai/Handler/Warp/Run.hs+1−2
@@ -20,7 +20,7 @@ import Data.ByteString (ByteString)
20import qualified Data.ByteString as S
20import qualified Data.ByteString as S
21import Data.Char (chr)
21import Data.Char (chr)
22import "iproute" Data.IP (toHostAddress, toHostAddress6)
22import "iproute" Data.IP (toHostAddress, toHostAddress6)
23−import Data.IORef (IORef, newIORef, readIORef, writeIORef)
23+import Data.IORef (IORef, newIORef, readIORef, writeIORef, atomicModifyIORef')
24import Data.Streaming.Network (bindPortTCP)
24import Data.Streaming.Network (bindPortTCP)
25import Foreign.C.Error (Errno(..), eCONNABORTED)
25import Foreign.C.Error (Errno(..), eCONNABORTED)
26import GHC.IO.Exception (IOException(..))
26import GHC.IO.Exception (IOException(..))
@@ -35,7 +35,6 @@ import qualified Network.Wai.Handler.Warp.FdCache as F
35import qualified Network.Wai.Handler.Warp.FileInfoCache as I
35import qualified Network.Wai.Handler.Warp.FileInfoCache as I
36import Network.Wai.Handler.Warp.HTTP2 (http2, isHTTP2)
36import Network.Wai.Handler.Warp.HTTP2 (http2, isHTTP2)
37import Network.Wai.Handler.Warp.Header
37import Network.Wai.Handler.Warp.Header
38−import Network.Wai.Handler.Warp.IORef
39import Network.Wai.Handler.Warp.ReadInt
38import Network.Wai.Handler.Warp.ReadInt
40import Network.Wai.Handler.Warp.Recv
39import Network.Wai.Handler.Warp.Recv
41import Network.Wai.Handler.Warp.Request
40import Network.Wai.Handler.Warp.Request
warp/Network/Wai/Handler/Warp/Timeout.hs+2−2
@@ -27,8 +27,8 @@ import Control.Concurrent (myThreadId)
27import qualified Control.Exception as E
27import qualified Control.Exception as E
28import Control.Reaper
28import Control.Reaper
29import Data.Typeable (Typeable)
29import Data.Typeable (Typeable)
30−import Network.Wai.Handler.Warp.IORef (IORef)
30+import Data.IORef (IORef)
31−import qualified Network.Wai.Handler.Warp.IORef as I
31+import qualified Data.IORef as I
32
32
33----------------------------------------------------------------
33----------------------------------------------------------------
34
34
warp/warp.cabal−1
@@ -83,7 +83,6 @@ Library
83 Network.Wai.Handler.Warp.HTTP2.Worker
83 Network.Wai.Handler.Warp.HTTP2.Worker
84 Network.Wai.Handler.Warp.Header
84 Network.Wai.Handler.Warp.Header
85 Network.Wai.Handler.Warp.IO
85 Network.Wai.Handler.Warp.IO
86− Network.Wai.Handler.Warp.IORef
87 Network.Wai.Handler.Warp.PackInt
86 Network.Wai.Handler.Warp.PackInt
88 Network.Wai.Handler.Warp.ReadInt
87 Network.Wai.Handler.Warp.ReadInt
89 Network.Wai.Handler.Warp.Recv
88 Network.Wai.Handler.Warp.Recv