From 064aba3a5dcf255015dcd2d4da7d4811c22287c9 Mon Sep 17 00:00:00 2001 From: "jim@bo" Date: Thu, 21 Jun 2018 05:16:34 -0400 Subject: Remove obsolete Overwrite mode from PacketQueue Overwrite mode is provided by Data.CyclicBuffer --- src/Data/PacketQueue.hs | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) (limited to 'src/Data/PacketQueue.hs') diff --git a/src/Data/PacketQueue.hs b/src/Data/PacketQueue.hs index f1be1375..23db0ee0 100644 --- a/src/Data/PacketQueue.hs +++ b/src/Data/PacketQueue.hs @@ -8,7 +8,6 @@ module Data.PacketQueue ( PacketQueue , getCapacity , new - , newOverwrite , dequeue , getMissing , dequeueOrGetMissing @@ -41,7 +40,6 @@ data PacketQueue a = PacketQueue , seqno :: TVar Word32 -- (buffer_start) , qsize :: Word32 , buffend :: TVar Word32 -- on incoming, next packet they'll send + 1 - , qOverWriteMode :: Bool -- TODO: Remove me, use Data.CyclicBuffer instead. } packetQueueViewList :: PacketQueue a -> STM [(Word32,a)] @@ -67,24 +65,6 @@ new capacity seqstart = do , seqno = seqv , qsize = cap , buffend = bufe - , qOverWriteMode = False - } - --- | Create a new PacketQueue with Overwrite on Wrap. -newOverwrite :: Word32 -- ^ Capacity of queue. - -> Word32 -- ^ Initial sequence number. - -> STM (PacketQueue a) -newOverwrite capacity seqstart = do - let cap = if capacity `mod` 2 == 0 then capacity else capacity + 1 - q <- newArray (0,cap - 1) Nothing - seqv <- newTVar seqstart - bufe <- newTVar 0 - return PacketQueue - { pktq = q - , seqno = seqv - , qsize = cap - , buffend = bufe - , qOverWriteMode = True } -- | Update the packet queue given: @@ -158,11 +138,11 @@ enqueue :: PacketQueue a -- ^ The packet queue. -> Word32 -- ^ Sequence number of the packet. -> a -- ^ The packet. -> STM (Word32,Word32) -enqueue PacketQueue{ pktq, seqno, qsize, buffend,qOverWriteMode } no x = do +enqueue PacketQueue{ pktq, seqno, qsize, buffend} no x = do low <- readTVar seqno let proj = no - low -- Ignore packet if out of range. - when ( proj < qsize || qOverWriteMode) $ do + when ( proj < qsize) $ do let i = no `mod` qsize writeArray pktq i (Just x) modifyTVar' buffend (\be -> if be - low <= proj then no + 1 else be) -- cgit v1.2.3