summaryrefslogtreecommitdiff
path: root/RingBuffer.hs
diff options
context:
space:
mode:
Diffstat (limited to 'RingBuffer.hs')
-rw-r--r--RingBuffer.hs6
1 files changed, 4 insertions, 2 deletions
diff --git a/RingBuffer.hs b/RingBuffer.hs
index b2779d7..64b0624 100644
--- a/RingBuffer.hs
+++ b/RingBuffer.hs
@@ -66,5 +66,7 @@ pushBack r upd = do
66 66
67updateBack :: RingBuffer u -> u -> IO () 67updateBack :: RingBuffer u -> u -> IO ()
68updateBack r upd = do 68updateBack r upd = do
69 back <- readIORef $ rBack r 69 size <- readIORef $ rSize r
70 updateBuffer (rBuffer r) back upd 70 when (size > 0) $ do
71 back <- readIORef $ rBack r
72 updateBuffer (rBuffer r) (mod (back + ringCapacity r - 1) (ringCapacity r)) upd