Mercurial > cgi-bin > hgwebdir.cgi > VMS > C_Libraries > Queue_impl
diff PrivateQueue.c @ 11:3562716ebdbd
added numInPrivQ service
| author | Me |
|---|---|
| date | Thu, 04 Nov 2010 17:54:08 -0700 |
| parents | 62326cc8e6f4 |
| children | 3134d8a1e8e3 447e97a52426 |
line diff
1.1 --- a/PrivateQueue.c Tue Nov 02 16:48:22 2010 -0700 1.2 +++ b/PrivateQueue.c Thu Nov 04 17:54:08 2010 -0700 1.3 @@ -2,8 +2,6 @@ 1.4 * Copyright 2009 OpenSourceStewardshipFoundation.org 1.5 * Licensed under GNU General Public License version 2 1.6 * 1.7 - * NOTE: this version of SRSW correct as of April 25, 2010 1.8 - * 1.9 * Author: seanhalle@yahoo.com 1.10 */ 1.11 1.12 @@ -83,6 +81,24 @@ 1.13 return NULL; 1.14 } 1.15 1.16 +int32 1.17 +numInPrivQ( PrivQueueStruc *Q ) 1.18 + { int32 size, numIn; 1.19 + 1.20 + if( Q->insertPos < Q->extractPos ) 1.21 + { //insert has wrapped around so numIn is: 1.22 + // insertPos + size - extractPos -- Consider, is empty when 1.23 + // extractPos = endOfData and insert = start -- correctly get zero 1.24 + size = Q->endOfData - Q->startOfData; 1.25 + numIn = Q->insertPos + size - Q->extractPos; 1.26 + } 1.27 + else 1.28 + { 1.29 + numIn = Q->insertPos - Q->extractPos -1;//-1 bec empty @ side-by-side 1.30 + } 1.31 + return numIn; 1.32 + } 1.33 + 1.34 1.35 /*Expands the queue size automatically when it's full 1.36 */
