streaming-commons 0.2.1.1 → 0.2.1.2
raw patch · 5 files changed
+16/−7 lines, 5 filesdep ~base
Dependency ranges changed: base
Files
- ChangeLog.md +4/−0
- Data/Streaming/Network.hs +5/−3
- README.md +1/−2
- streaming-commons.cabal +2/−2
- test/Data/Streaming/NetworkSpec.hs +4/−0
ChangeLog.md view
@@ -1,5 +1,9 @@ # ChangeLog for streaming-commons +## 0.2.1.2++* Update `defaultReadBufferSize` to use system default instead of hardcoded value [#54](https://github.com/fpco/streaming-commons/issues/54)+ ## 0.2.1.1 * Fix a failing test case (invalid `ByteString` copying), does not affect library itself
Data/Streaming/Network.hs view
@@ -94,7 +94,7 @@ import qualified Network.Socket as NS import Data.Streaming.Network.Internal import Control.Concurrent (threadDelay)-import Control.Exception (IOException, try, SomeException, throwIO, bracketOnError)+import Control.Exception (IOException, try, SomeException, throwIO, bracketOnError, bracket) import Network.Socket (Socket, AddrInfo, SocketType) import Network.Socket.ByteString (recv, sendAll) import System.IO.Error (isDoesNotExistError)@@ -108,7 +108,7 @@ import Control.Monad (forever) import Data.IORef (IORef, newIORef, atomicModifyIORef) import Data.Array.Unboxed ((!), UArray, listArray)-import System.IO.Unsafe (unsafePerformIO)+import System.IO.Unsafe (unsafePerformIO, unsafeDupablePerformIO) import System.Random (randomRIO) import System.IO.Error (isFullErrorType, ioeGetErrorType) #if WINDOWS@@ -263,8 +263,10 @@ bindRandomPortUDP :: HostPreference -> IO (Int, Socket) bindRandomPortUDP = bindRandomPortGen NS.Datagram +{-# NOINLINE defaultReadBufferSize #-} defaultReadBufferSize :: Int-defaultReadBufferSize = 32768+defaultReadBufferSize = unsafeDupablePerformIO $+ bracket (NS.socket NS.AF_INET NS.Stream 0) NS.close (\sock -> NS.getSocketOption sock NS.RecvBuffer) #if !WINDOWS -- | Attempt to connect to the given Unix domain socket path.
README.md view
@@ -4,8 +4,7 @@ Common lower-level functions needed by various streaming data libraries. Intended to be shared by libraries like conduit and pipes. -[](https://travis-ci.org/fpco/streaming-commons)-[](https://ci.appveyor.com/project/snoyberg/streaming-commons/branch/master)+[](https://dev.azure.com/fpco/streaming-commons/_build/latest?definitionId=2&branchName=master) Dependencies ------------
streaming-commons.cabal view
@@ -1,5 +1,5 @@ name: streaming-commons-version: 0.2.1.1+version: 0.2.1.2 synopsis: Common lower-level functions needed by various streaming data libraries description: Provides low-dependency functionality commonly needed by various streaming data libraries, such as conduit and pipes. homepage: https://github.com/fpco/streaming-commons@@ -45,7 +45,7 @@ Data.Text.Internal.Encoding.Utf16 Data.Text.Internal.Encoding.Utf32 - build-depends: base >= 4.7 && < 5+ build-depends: base >= 4.8 && < 5 , array , async , bytestring
test/Data/Streaming/NetworkSpec.hs view
@@ -14,6 +14,10 @@ spec :: Spec spec = do+ describe "getDefaultReadBufferSize" $ do+ it "sanity" $ do+ getReadBufferSize (clientSettingsTCP 8080 "localhost") >= 4096 `shouldBe` True+ describe "getUnassignedPort" $ do it "sanity" $ replicateM_ 100000 $ do port <- getUnassignedPort