# HG changeset patch # User Some Random Person # Date 1331790988 25200 # Node ID 501206566d1694f34385e203f03343dc1b3f06dd # Parent a74011c0b78be160ca864c26377023f2439f34ae fixed numInPrivQ diff -r a74011c0b78b -r 501206566d16 PrivateQueue.c --- a/PrivateQueue.c Wed Mar 14 22:48:50 2012 -0700 +++ b/PrivateQueue.c Wed Mar 14 22:56:28 2012 -0700 @@ -194,33 +194,17 @@ { //insert has wrapped around so numIn is: // insertPos + size - extractPos -- Consider, is empty when // extractPos = endOfData and insert = start -- correctly get zero - size = Q->endOfData - Q->startOfData; - numIn = Q->insertPos + size - Q->extractPos; + size = Q->endOfData - Q->startOfData + 1; //sz of 10 is 0..9 + numIn = Q->insertPos - Q->extractPos + size - 1; //-1 bec insrt empty } else { - numIn = Q->insertPos - Q->extractPos -1;//-1 bec empty @ side-by-side + numIn = Q->insertPos - Q->extractPos -1;//-1 bec insertPos empty } return numIn; } -int -numInPrivQ( PrivQueueStruc *Q ) - { - void **insertPos = Q->insertPos; - void **extractPos = Q->extractPos; - - int numInQ; - - if( (numInQ = insertPos - extractPos) >= 0 ) return numInQ; - else - { int size = Q->endOfData - Q->startOfData; - int numEmpty = extractPos - insertPos; //not efficient, but easier to read - return size - numEmpty; - } - } - /*Treats queue as a stack -- no matter contents, if read done right after * a push, then the pushed item is what comes out. * Expands the queue size automatically when it's full.