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 }