diff options
Diffstat (limited to 'RingBuffer.hs')
-rw-r--r-- | RingBuffer.hs | 6 |
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 | ||
67 | updateBack :: RingBuffer u -> u -> IO () | 67 | updateBack :: RingBuffer u -> u -> IO () |
68 | updateBack r upd = do | 68 | updateBack 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 | ||