fast-logger 2.0.1 → 2.0.2
raw patch · 4 files changed
+23/−15 lines, 4 filesdep ~base
Dependency ranges changed: base
Files
- System/Log/FastLogger.hs +1/−13
- System/Log/FastLogger/IORef.hs +19/−0
- System/Log/FastLogger/Logger.hs +1/−1
- fast-logger.cabal +2/−1
System/Log/FastLogger.hs view
@@ -25,12 +25,12 @@ import Control.Concurrent (getNumCapabilities, myThreadId, threadCapability, takeMVar) import Control.Monad (when, replicateM) import Data.Array (Array, listArray, (!))-import Data.IORef import GHC.IO.Device (close) import GHC.IO.FD (FD(..), openFile) import GHC.IO.IOMode (IOMode(..)) import System.Log.FastLogger.File import System.Log.FastLogger.IO+import System.Log.FastLogger.IORef import System.Log.FastLogger.LogStr import System.Log.FastLogger.Logger @@ -94,15 +94,3 @@ freeIt i = do let (Logger mbuf _ _) = arr ! i takeMVar mbuf >>= freeBuffer--#if !MIN_VERSION_base(4,6,0)--- | Strict version of 'atomicModifyIORef'. This forces both the value stored--- in the 'IORef' as well as the value returned.-atomicModifyIORef' :: IORef a -> (a -> (a,b)) -> IO b-atomicModifyIORef' ref f = do- c <- atomicModifyIORef ref- (\x -> let (a, b) = f x -- Lazy application of "f"- in (a, a `seq` b)) -- Lazy application of "seq"- -- The following forces "a `seq` b", so it also forces "f x".- c `seq` return c-#endif
+ System/Log/FastLogger/IORef.hs view
@@ -0,0 +1,19 @@+{-# LANGUAGE CPP #-}++module System.Log.FastLogger.IORef (+ IORef+ , newIORef+ , readIORef+ , atomicModifyIORef'+ ) where++import Data.IORef++#if !MIN_VERSION_base(4, 6, 0)+atomicModifyIORef' :: IORef a -> (a -> (a,b)) -> IO b+atomicModifyIORef' ref f = do+ b <- atomicModifyIORef ref+ (\x -> let (a, b) = f x+ in (a, a `seq` b))+ b `seq` return b+#endif
System/Log/FastLogger/Logger.hs view
@@ -9,11 +9,11 @@ import Control.Concurrent (MVar, newMVar, withMVar) import Control.Monad (when)-import Data.IORef import Foreign.Ptr (plusPtr) import GHC.IO.FD (FD, writeRawBufferPtr) import System.Log.FastLogger.IO import System.Log.FastLogger.LogStr+import System.Log.FastLogger.IORef ----------------------------------------------------------------
fast-logger.cabal view
@@ -1,5 +1,5 @@ Name: fast-logger-Version: 2.0.1+Version: 2.0.2 Author: Kazu Yamamoto <kazu@iij.ad.jp> Maintainer: Kazu Yamamoto <kazu@iij.ad.jp> License: BSD3@@ -15,6 +15,7 @@ Exposed-Modules: System.Log.FastLogger System.Log.FastLogger.File System.Log.FastLogger.IO+ System.Log.FastLogger.IORef System.Log.FastLogger.LogStr System.Log.FastLogger.Logger Build-Depends: base >= 4 && < 5