Mercurial > cgi-bin > hgwebdir.cgi > VMS > C_Libraries > Queue_impl
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 |
