[Haskell-cafe] ANN: Monad.Reader Issue 19
Bas van Dijk
v.dijk.bas at gmail.com
Wed Oct 26 22:24:56 CEST 2011
On 26 October 2011 21:17, Brent Yorgey <byorgey at seas.upenn.edu> wrote:
> I am pleased to announce that Issue 19 of The Monad.Reader, a special
> issue on parallelism and concurrency, is now available:
Thanks, I always really enjoy The Monad.Reader.
> Issue 19 consists of the following three articles:
>
> * Mighttpd – a High Performance Web Server in Haskell
> by Kazu Yamamoto
Kazu, really interesting article!
I have one question regarding your use of atomicModifyIORef:
x <- atomicModifyIORef ref (\_ -> (tmstr, ()))
x `seq` return ()
Can't you write that as just: writeIORef ref tmstr? If you're not
using the previous value of the IORef there's no chance of
inconsistency.
I looked in the git repository of mighttpd2 and it seems that in the
FileCache module we can make a similar change by rewriting:
remover :: IORef Cache -> IO ()
remover ref = do
threadDelay 10000000
_ <- atomicModifyIORef ref (\_ -> (M.empty, ()))
remover ref
to:
remover :: IORef Cache -> IO ()
remover ref = forever $ do
threadDelay 10000000
writeIORef ref M.empty
Regards,
Bas
More information about the Haskell-Cafe
mailing list