comparison BlockingQueue.c @ 43:d01d48b023ca

Renamed VMS to PR, in new branch
author Sean Halle <seanhalle@yahoo.com>
date Mon, 03 Sep 2012 15:07:45 -0700
parents 7d35d7f42cd5
children 67c7f5a0308b
comparison
equal deleted inserted replaced
15:69a5b2c0de8f 18:e21c9bb599b6
33 */ 33 */
34 34
35 CASQueueStruc* makeCASQ() 35 CASQueueStruc* makeCASQ()
36 { 36 {
37 CASQueueStruc* retQ; 37 CASQueueStruc* retQ;
38 retQ = (CASQueueStruc *) VMS_WL__malloc( sizeof( CASQueueStruc ) ); 38 retQ = (CASQueueStruc *) PR_WL__malloc( sizeof( CASQueueStruc ) );
39 39
40 retQ->insertLock = UNLOCKED; 40 retQ->insertLock = UNLOCKED;
41 retQ->extractLock= UNLOCKED; 41 retQ->extractLock= UNLOCKED;
42 42
43 retQ->extractPos = (volatile void**)&(retQ->startOfData[0]); //side by side == empty 43 retQ->extractPos = (volatile void**)&(retQ->startOfData[0]); //side by side == empty
158 */ 158 */
159 159
160 SRSWQueueStruc* makeSRSWQ() 160 SRSWQueueStruc* makeSRSWQ()
161 { 161 {
162 SRSWQueueStruc* retQ; 162 SRSWQueueStruc* retQ;
163 retQ = (SRSWQueueStruc *) VMS_WL__malloc( sizeof( SRSWQueueStruc ) ); 163 retQ = (SRSWQueueStruc *) PR_WL__malloc( sizeof( SRSWQueueStruc ) );
164 memset( retQ->startOfData, 0, 1024 * sizeof(void *) ); 164 memset( retQ->startOfData, 0, 1024 * sizeof(void *) );
165 165
166 retQ->extractPos = &(retQ->startOfData[0]); //side by side == empty 166 retQ->extractPos = &(retQ->startOfData[0]); //side by side == empty
167 retQ->insertPos = &(retQ->startOfData[1]); // so start pos's have to be 167 retQ->insertPos = &(retQ->startOfData[1]); // so start pos's have to be
168 retQ->endOfData = &(retQ->startOfData[1023]); 168 retQ->endOfData = &(retQ->startOfData[1023]);
171 } 171 }
172 172
173 void 173 void
174 freeSRSWQ( SRSWQueueStruc* Q ) 174 freeSRSWQ( SRSWQueueStruc* Q )
175 { 175 {
176 VMS_int__free( Q ); 176 PR_int__free( Q );
177 } 177 }
178 178
179 void* readSRSWQ( SRSWQueueStruc* Q ) 179 void* readSRSWQ( SRSWQueueStruc* Q )
180 { void *out = 0; 180 { void *out = 0;
181 int tries = 0; 181 int tries = 0;
297 */ 297 */
298 298
299 SRMWQueueStruc* makeSRMWQ() 299 SRMWQueueStruc* makeSRMWQ()
300 { SRMWQueueStruc* retQ; 300 { SRMWQueueStruc* retQ;
301 301
302 retQ = (SRMWQueueStruc *) VMS_WL__malloc( sizeof( SRMWQueueStruc ) ); 302 retQ = (SRMWQueueStruc *) PR_WL__malloc( sizeof( SRMWQueueStruc ) );
303 303
304 retQ->numInternalQs = 0; 304 retQ->numInternalQs = 0;
305 retQ->internalQsSz = 10; 305 retQ->internalQsSz = 10;
306 retQ->internalQs = VMS_WL__malloc( retQ->internalQsSz * sizeof(SRSWQueueStruc *)); 306 retQ->internalQs = PR_WL__malloc( retQ->internalQsSz * sizeof(SRSWQueueStruc *));
307 307
308 retQ->lastQReadFrom = 0; 308 retQ->lastQReadFrom = 0;
309 309
310 return retQ; 310 return retQ;
311 } 311 }
327 if( Q->numInternalQs >= Q->internalQsSz ) 327 if( Q->numInternalQs >= Q->internalQsSz )
328 { //full, so make bigger 328 { //full, so make bigger
329 oldSz = Q->internalQsSz; 329 oldSz = Q->internalQsSz;
330 oldArray = Q->internalQs; 330 oldArray = Q->internalQs;
331 Q->internalQsSz *= 2; 331 Q->internalQsSz *= 2;
332 Q->internalQs = VMS_WL__malloc( Q->internalQsSz * sizeof(SRSWQueueStruc *)); 332 Q->internalQs = PR_WL__malloc( Q->internalQsSz * sizeof(SRSWQueueStruc *));
333 for( i = 0; i < oldSz; i++ ) 333 for( i = 0; i < oldSz; i++ )
334 { Q->internalQs[i] = oldArray[i]; 334 { Q->internalQs[i] = oldArray[i];
335 } 335 }
336 VMS_int__free( oldArray ); 336 PR_int__free( oldArray );
337 } 337 }
338 Q->internalQs[ Q->numInternalQs - 1 ] = makeSRSWQ(); 338 Q->internalQs[ Q->numInternalQs - 1 ] = makeSRSWQ();
339 return Q->numInternalQs - 1; 339 return Q->numInternalQs - 1;
340 } 340 }
341 341