changeset 33:501206566d16 MC_shared

fixed numInPrivQ
author Some Random Person <seanhalle@yahoo.com>
date Wed, 14 Mar 2012 22:56:28 -0700
parents a74011c0b78b
children 3f5e365143fd
files PrivateQueue.c
diffstat 1 files changed, 3 insertions(+), 19 deletions(-) [+]
line diff
     1.1 --- a/PrivateQueue.c	Wed Mar 14 22:48:50 2012 -0700
     1.2 +++ b/PrivateQueue.c	Wed Mar 14 22:56:28 2012 -0700
     1.3 @@ -194,33 +194,17 @@
     1.4      {    //insert has wrapped around so numIn is:
     1.5           // insertPos + size - extractPos -- Consider, is empty when
     1.6           // extractPos = endOfData and insert = start -- correctly get zero
     1.7 -      size  = Q->endOfData - Q->startOfData;
     1.8 -      numIn = Q->insertPos + size - Q->extractPos;
     1.9 +      size  = Q->endOfData - Q->startOfData + 1; //sz of 10 is 0..9
    1.10 +      numIn = Q->insertPos - Q->extractPos + size - 1; //-1 bec insrt empty
    1.11      }
    1.12     else
    1.13      {
    1.14 -      numIn =  Q->insertPos -  Q->extractPos -1;//-1 bec empty @ side-by-side
    1.15 +      numIn =  Q->insertPos -  Q->extractPos -1;//-1 bec insertPos empty
    1.16      }
    1.17     return numIn;
    1.18   }
    1.19  
    1.20  
    1.21 -int
    1.22 -numInPrivQ( PrivQueueStruc *Q )
    1.23 - {    
    1.24 -   void **insertPos  = Q->insertPos;
    1.25 -   void **extractPos = Q->extractPos;
    1.26 -   
    1.27 -   int numInQ;
    1.28 -   
    1.29 -   if( (numInQ = insertPos - extractPos) >= 0 ) return numInQ;
    1.30 -   else 
    1.31 -    { int size = Q->endOfData - Q->startOfData;
    1.32 -      int numEmpty = extractPos - insertPos; //not efficient, but easier to read
    1.33 -      return size - numEmpty;
    1.34 -    }
    1.35 - }
    1.36 -
    1.37  /*Treats queue as a stack -- no matter contents, if read done right after
    1.38   * a push, then the pushed item is what comes out.
    1.39   * Expands the queue size automatically when it's full.