Mercurial > cgi-bin > hgwebdir.cgi > VMS > C_Libraries > Queue_impl
comparison BlockingQueue.c @ 28:dabefab7d264
fixed include paths -- paths should be set in Netbeans as project settings
| author | Some Random Person <seanhalle@yahoo.com> |
|---|---|
| date | Fri, 09 Mar 2012 22:12:01 -0800 |
| parents | 59781a4c9cf1 |
| children | 7d35d7f42cd5 |
comparison
equal
deleted
inserted
replaced
| 12:ce567859f0ab | 14:2a0e716cb48e |
|---|---|
| 32 */ | 32 */ |
| 33 | 33 |
| 34 CASQueueStruc* makeCASQ() | 34 CASQueueStruc* makeCASQ() |
| 35 { | 35 { |
| 36 CASQueueStruc* retQ; | 36 CASQueueStruc* retQ; |
| 37 retQ = (CASQueueStruc *) VMS_int__malloc( sizeof( CASQueueStruc ) ); | 37 retQ = (CASQueueStruc *) VMS_WL__malloc( sizeof( CASQueueStruc ) ); |
| 38 | 38 |
| 39 retQ->insertLock = UNLOCKED; | 39 retQ->insertLock = UNLOCKED; |
| 40 retQ->extractLock= UNLOCKED; | 40 retQ->extractLock= UNLOCKED; |
| 41 //TODO: check got pointer syntax right | 41 //TODO: check got pointer syntax right |
| 42 retQ->extractPos = &(retQ->startOfData[0]); //side by side == empty | 42 retQ->extractPos = &(retQ->startOfData[0]); //side by side == empty |
| 157 */ | 157 */ |
| 158 | 158 |
| 159 SRSWQueueStruc* makeSRSWQ() | 159 SRSWQueueStruc* makeSRSWQ() |
| 160 { | 160 { |
| 161 SRSWQueueStruc* retQ; | 161 SRSWQueueStruc* retQ; |
| 162 retQ = (SRSWQueueStruc *) VMS_int__malloc( sizeof( SRSWQueueStruc ) ); | 162 retQ = (SRSWQueueStruc *) VMS_WL__malloc( sizeof( SRSWQueueStruc ) ); |
| 163 memset( retQ->startOfData, 0, 1024 * sizeof(void *) ); | 163 memset( retQ->startOfData, 0, 1024 * sizeof(void *) ); |
| 164 | 164 |
| 165 retQ->extractPos = &(retQ->startOfData[0]); //side by side == empty | 165 retQ->extractPos = &(retQ->startOfData[0]); //side by side == empty |
| 166 retQ->insertPos = &(retQ->startOfData[1]); // so start pos's have to be | 166 retQ->insertPos = &(retQ->startOfData[1]); // so start pos's have to be |
| 167 retQ->endOfData = &(retQ->startOfData[1023]); | 167 retQ->endOfData = &(retQ->startOfData[1023]); |
| 296 */ | 296 */ |
| 297 | 297 |
| 298 SRMWQueueStruc* makeSRMWQ() | 298 SRMWQueueStruc* makeSRMWQ() |
| 299 { SRMWQueueStruc* retQ; | 299 { SRMWQueueStruc* retQ; |
| 300 | 300 |
| 301 retQ = (SRMWQueueStruc *) VMS_int__malloc( sizeof( SRMWQueueStruc ) ); | 301 retQ = (SRMWQueueStruc *) VMS_WL__malloc( sizeof( SRMWQueueStruc ) ); |
| 302 | 302 |
| 303 retQ->numInternalQs = 0; | 303 retQ->numInternalQs = 0; |
| 304 retQ->internalQsSz = 10; | 304 retQ->internalQsSz = 10; |
| 305 retQ->internalQs = VMS_int__malloc( retQ->internalQsSz * sizeof(SRSWQueueStruc *)); | 305 retQ->internalQs = VMS_WL__malloc( retQ->internalQsSz * sizeof(SRSWQueueStruc *)); |
| 306 | 306 |
| 307 retQ->lastQReadFrom = 0; | 307 retQ->lastQReadFrom = 0; |
| 308 | 308 |
| 309 return retQ; | 309 return retQ; |
| 310 } | 310 } |
| 326 if( Q->numInternalQs >= Q->internalQsSz ) | 326 if( Q->numInternalQs >= Q->internalQsSz ) |
| 327 { //full, so make bigger | 327 { //full, so make bigger |
| 328 oldSz = Q->internalQsSz; | 328 oldSz = Q->internalQsSz; |
| 329 oldArray = Q->internalQs; | 329 oldArray = Q->internalQs; |
| 330 Q->internalQsSz *= 2; | 330 Q->internalQsSz *= 2; |
| 331 Q->internalQs = VMS_int__malloc( Q->internalQsSz * sizeof(SRSWQueueStruc *)); | 331 Q->internalQs = VMS_WL__malloc( Q->internalQsSz * sizeof(SRSWQueueStruc *)); |
| 332 for( i = 0; i < oldSz; i++ ) | 332 for( i = 0; i < oldSz; i++ ) |
| 333 { Q->internalQs[i] = oldArray[i]; | 333 { Q->internalQs[i] = oldArray[i]; |
| 334 } | 334 } |
| 335 VMS_int__free( oldArray ); | 335 VMS_int__free( oldArray ); |
| 336 } | 336 } |
