Fix the head removal issue
authorNikita Volkov <nikita.y.volkov@mail.ru>
Mon, 17 Sep 2018 10:09:41 +0000 (13:09 +0300)
committerNikita Volkov <nikita.y.volkov@mail.ru>
Mon, 17 Sep 2018 10:09:41 +0000 (13:09 +0300)
Control/Concurrent/STM/TBQueue.hs
Control/Concurrent/STM/TQueue.hs

index 16dc2a8..7b82388 100644 (file)
@@ -173,7 +173,7 @@ peekTBQueue (TBQueue _ read _ write _) = do
           let (z:zs) = reverse ys -- NB. lazy: we want the transaction to be
                                   -- short, otherwise it will conflict
           writeTVar write []
-          writeTVar read zs
+          writeTVar read (z:zs)
           return z
 
 -- | A version of 'peekTBQueue' which does not retry. Instead it
index 17d2de4..33052cf 100644 (file)
@@ -134,7 +134,7 @@ peekTQueue (TQueue read write) = do
           let (z:zs) = reverse ys -- NB. lazy: we want the transaction to be
                                   -- short, otherwise it will conflict
           writeTVar write []
-          writeTVar read zs
+          writeTVar read (z:zs)
           return z
 
 -- | A version of 'peekTQueue' which does not retry. Instead it