mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-10 23:57:25 -05:00
Updates the overflowable queue to reduce thread contention on the queue size monitor
This commit is contained in:
@@ -55,15 +55,14 @@ public class OverflowableTransferQueue<E>
|
||||
{
|
||||
if(!mOverflow)
|
||||
{
|
||||
if(mCounter.get() > mMaximumSize)
|
||||
mQueue.offer(e);
|
||||
|
||||
int size = mCounter.incrementAndGet();
|
||||
|
||||
if(size > mMaximumSize)
|
||||
{
|
||||
setOverflow(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
mQueue.offer(e);
|
||||
mCounter.incrementAndGet();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,7 +75,12 @@ public class OverflowableTransferQueue<E>
|
||||
|
||||
if(drainCount > 0)
|
||||
{
|
||||
mCounter.addAndGet(-drainCount);
|
||||
int size = mCounter.addAndGet(-drainCount);
|
||||
|
||||
if(mOverflow && size <= mResetThreshold)
|
||||
{
|
||||
setOverflow(false);
|
||||
}
|
||||
}
|
||||
|
||||
return drainCount;
|
||||
|
||||
Reference in New Issue
Block a user