Mercurial > cgi-bin > hgwebdir.cgi > VMS > C_Libraries > Queue_impl
comparison BlockingQueue.c @ 9:62326cc8e6f4
This branch has replace malloc and free with VMS__malloc and VMS__free
| author | Me |
|---|---|
| date | Sun, 31 Oct 2010 20:24:00 -0700 |
| parents | 08f0b4da7610 |
| children | 88efea74818a |
comparison
equal
deleted
inserted
replaced
| 4:0686b20358ef | 5:b00f61653656 |
|---|---|
| 23 | 23 |
| 24 PThdQueueStruc* makePThdQ() | 24 PThdQueueStruc* makePThdQ() |
| 25 { | 25 { |
| 26 PThdQueueStruc* retQ; | 26 PThdQueueStruc* retQ; |
| 27 int retCode; | 27 int retCode; |
| 28 retQ = (PThdQueueStruc *) malloc( sizeof( PThdQueueStruc ) ); | 28 retQ = (PThdQueueStruc *) VMS__malloc( sizeof( PThdQueueStruc ) ); |
| 29 | 29 |
| 30 | 30 |
| 31 retCode = | 31 retCode = |
| 32 pthread_mutex_init( &retQ->mutex_t, NULL); | 32 pthread_mutex_init( &retQ->mutex_t, NULL); |
| 33 if(retCode){perror("Error in creating mutex:"); exit(1);} | 33 if(retCode){perror("Error in creating mutex:"); exit(1);} |
| 115 */ | 115 */ |
| 116 | 116 |
| 117 CASQueueStruc* makeCASQ() | 117 CASQueueStruc* makeCASQ() |
| 118 { | 118 { |
| 119 CASQueueStruc* retQ; | 119 CASQueueStruc* retQ; |
| 120 retQ = (CASQueueStruc *) malloc( sizeof( CASQueueStruc ) ); | 120 retQ = (CASQueueStruc *) VMS__malloc( sizeof( CASQueueStruc ) ); |
| 121 | 121 |
| 122 retQ->insertLock = UNLOCKED; | 122 retQ->insertLock = UNLOCKED; |
| 123 retQ->extractLock= UNLOCKED; | 123 retQ->extractLock= UNLOCKED; |
| 124 //TODO: check got pointer syntax right | 124 //TODO: check got pointer syntax right |
| 125 retQ->extractPos = &(retQ->startOfData[0]); //side by side == empty | 125 retQ->extractPos = &(retQ->startOfData[0]); //side by side == empty |
| 240 */ | 240 */ |
| 241 | 241 |
| 242 SRSWQueueStruc* makeSRSWQ() | 242 SRSWQueueStruc* makeSRSWQ() |
| 243 { | 243 { |
| 244 SRSWQueueStruc* retQ; | 244 SRSWQueueStruc* retQ; |
| 245 retQ = (SRSWQueueStruc *) malloc( sizeof( SRSWQueueStruc ) ); | 245 retQ = (SRSWQueueStruc *) VMS__malloc( sizeof( SRSWQueueStruc ) ); |
| 246 | 246 |
| 247 retQ->extractPos = &(retQ->startOfData[0]); //side by side == empty | 247 retQ->extractPos = &(retQ->startOfData[0]); //side by side == empty |
| 248 retQ->insertPos = &(retQ->startOfData[1]); // so start pos's have to be | 248 retQ->insertPos = &(retQ->startOfData[1]); // so start pos's have to be |
| 249 retQ->endOfData = &(retQ->startOfData[1023]); | 249 retQ->endOfData = &(retQ->startOfData[1023]); |
| 250 | 250 |
| 378 */ | 378 */ |
| 379 | 379 |
| 380 SRMWQueueStruc* makeSRMWQ() | 380 SRMWQueueStruc* makeSRMWQ() |
| 381 { SRMWQueueStruc* retQ; | 381 { SRMWQueueStruc* retQ; |
| 382 | 382 |
| 383 retQ = (SRMWQueueStruc *) malloc( sizeof( SRMWQueueStruc ) ); | 383 retQ = (SRMWQueueStruc *) VMS__malloc( sizeof( SRMWQueueStruc ) ); |
| 384 | 384 |
| 385 retQ->numInternalQs = 0; | 385 retQ->numInternalQs = 0; |
| 386 retQ->internalQsSz = 10; | 386 retQ->internalQsSz = 10; |
| 387 retQ->internalQs = malloc( retQ->internalQsSz * sizeof(SRSWQueueStruc *)); | 387 retQ->internalQs = VMS__malloc( retQ->internalQsSz * sizeof(SRSWQueueStruc *)); |
| 388 | 388 |
| 389 retQ->lastQReadFrom = 0; | 389 retQ->lastQReadFrom = 0; |
| 390 | 390 |
| 391 return retQ; | 391 return retQ; |
| 392 } | 392 } |
| 408 if( Q->numInternalQs >= Q->internalQsSz ) | 408 if( Q->numInternalQs >= Q->internalQsSz ) |
| 409 { //full, so make bigger | 409 { //full, so make bigger |
| 410 oldSz = Q->internalQsSz; | 410 oldSz = Q->internalQsSz; |
| 411 oldArray = Q->internalQs; | 411 oldArray = Q->internalQs; |
| 412 Q->internalQsSz *= 2; | 412 Q->internalQsSz *= 2; |
| 413 Q->internalQs = malloc( Q->internalQsSz * sizeof(SRSWQueueStruc *)); | 413 Q->internalQs = VMS__malloc( Q->internalQsSz * sizeof(SRSWQueueStruc *)); |
| 414 for( i = 0; i < oldSz; i++ ) | 414 for( i = 0; i < oldSz; i++ ) |
| 415 { Q->internalQs[i] = oldArray[i]; | 415 { Q->internalQs[i] = oldArray[i]; |
| 416 } | 416 } |
| 417 free( oldArray ); | 417 free( oldArray ); |
| 418 } | 418 } |
