@@ -1,9 +1,6 @@
1{-# LANGUAGE CPP #-}
1{-# LANGUAGE CPP #-}
2−{-# LANGUAGE BangPatterns #-}
3{-# LANGUAGE FlexibleContexts #-}
2{-# LANGUAGE FlexibleContexts #-}
4−{-# LANGUAGE MagicHash #-}
5{-# LANGUAGE RecordWildCards #-}
3{-# LANGUAGE RecordWildCards #-}
6−{-# LANGUAGE UnboxedTuples #-}
8#include "inline.hs"
5#include "inline.hs"
@@ -78,11 +75,10 @@ import Foreign.ForeignPtr.Unsafe (unsafeForeignPtrToPtr)
78import Foreign.Ptr (minusPtr, plusPtr, Ptr, castPtr)
75import Foreign.Ptr (minusPtr, plusPtr, Ptr, castPtr)
79import Foreign.Storable (Storable(..))
76import Foreign.Storable (Storable(..))
80import GHC.ForeignPtr (mallocPlainForeignPtrBytes)
77import GHC.ForeignPtr (mallocPlainForeignPtrBytes)
81−import Network.Socket (sendBuf, recvBuf)
82import Network.Socket
78import Network.Socket
83 (Socket, SocketOption(..), Family(..), SockAddr(..),
79 (Socket, SocketOption(..), Family(..), SockAddr(..),
84 ProtocolNumber, withSocketsDo, SocketType(..), socket, bind,
80 ProtocolNumber, withSocketsDo, SocketType(..), socket, bind,
85− setSocketOption)
81+ setSocketOption, sendBuf, recvBuf)
86#if MIN_VERSION_network(3,1,0)
82#if MIN_VERSION_network(3,1,0)
87import Network.Socket (withFdSocket)
83import Network.Socket (withFdSocket)
@@ -160,9 +156,7 @@ listenTuples :: MonadIO m
160 => Unfold m (Int, SockSpec, SockAddr) (Socket, SockAddr)
156 => Unfold m (Int, SockSpec, SockAddr) (Socket, SockAddr)
161listenTuples = Unfold step inject
157listenTuples = Unfold step inject
163− inject (listenQLen, spec, addr) = do
164− listener <- liftIO $ initListener listenQLen spec addr
159+ inject (listenQLen, spec, addr) = liftIO $ initListener listenQLen spec addr
167 step listener = do
161 step listener = do
168 r <- liftIO $ Net.accept listener
162 r <- liftIO $ Net.accept listener
@@ -208,8 +202,7 @@ recvConnectionTuplesWith tcpListenQ spec addr = S.unfoldrM step Nothing
208-- /Internal/
202-- /Internal/
209{-# INLINE connections #-}
203{-# INLINE connections #-}
210connections :: MonadAsync m => Int -> SockSpec -> SockAddr -> SerialT m Socket
204connections :: MonadAsync m => Int -> SockSpec -> SockAddr -> SerialT m Socket
211−connections tcpListenQ spec addr = fmap fst $
212− recvConnectionTuplesWith tcpListenQ spec addr
205+connections tcpListenQ spec addr = fst <$> recvConnectionTuplesWith tcpListenQ spec addr
214-------------------------------------------------------------------------------
207-------------------------------------------------------------------------------
215-- Array IO (Input)
208-- Array IO (Input)
@@ -416,7 +409,7 @@ read = UF.supplyFirst readWithBufferOf A.defaultChunkSize
416{-# INLINE fromChunks #-}
409{-# INLINE fromChunks #-}
417fromChunks :: (MonadIO m, Storable a)
410fromChunks :: (MonadIO m, Storable a)
418 => Socket -> SerialT m (Array a) -> m ()
411 => Socket -> SerialT m (Array a) -> m ()
419−fromChunks h m = S.mapM_ (liftIO . writeChunk h) m
412+fromChunks h = S.mapM_ (liftIO . writeChunk h)
421-- | Write a stream of arrays to a socket. Each array in the stream is written
414-- | Write a stream of arrays to a socket. Each array in the stream is written
422-- to the socket as a separate IO request.
415-- to the socket as a separate IO request.