summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Crayne <joe@jerkface.net>2019-05-30 01:52:32 -0400
committerJoe Crayne <joe@jerkface.net>2019-05-30 01:52:32 -0400
commitbb4cfebd31ad44bd0a31e0959e145fced3078760 (patch)
treeacf9171677c6181a6d2ba07e0248abd39d197f25
parent9943fdbf293248a095a5248e1652da2a38e41760 (diff)
Fix updateBack ring-buffer bug.
-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