Mercurial > cgi-bin > hgwebdir.cgi > VMS > C_Libraries > Queue_impl
changeset 29:7d35d7f42cd5 MC_shared
added casts to fix warnings
| author | Some Random Person <seanhalle@yahoo.com> |
|---|---|
| date | Mon, 12 Mar 2012 05:39:45 -0700 |
| parents | dabefab7d264 |
| children | e59d39874274 |
| files | BlockingQueue.c |
| diffstat | 1 files changed, 9 insertions(+), 8 deletions(-) [+] |
line diff
1.1 --- a/BlockingQueue.c Fri Mar 09 22:12:01 2012 -0800 1.2 +++ b/BlockingQueue.c Mon Mar 12 05:39:45 2012 -0700 1.3 @@ -11,6 +11,7 @@ 1.4 #include <pthread.h> 1.5 #include <stdlib.h> 1.6 #include <sched.h> 1.7 +#include <string.h> 1.8 1.9 #include "BlockingQueue.h" 1.10 1.11 @@ -38,9 +39,9 @@ 1.12 1.13 retQ->insertLock = UNLOCKED; 1.14 retQ->extractLock= UNLOCKED; 1.15 - //TODO: check got pointer syntax right 1.16 - retQ->extractPos = &(retQ->startOfData[0]); //side by side == empty 1.17 - retQ->insertPos = &(retQ->startOfData[1]); // so start pos's have to be 1.18 + 1.19 + retQ->extractPos = (volatile void**)&(retQ->startOfData[0]); //side by side == empty 1.20 + retQ->insertPos = (volatile void**)&(retQ->startOfData[1]); // so start pos's have to be 1.21 retQ->endOfData = &(retQ->startOfData[1023]); 1.22 1.23 return retQ; 1.24 @@ -64,8 +65,8 @@ 1.25 //NOTE: checked assy, and it does lock correctly.. 1.26 if( gotLock ) 1.27 { 1.28 - void **insertPos = Q->insertPos; 1.29 - void **extractPos = Q->extractPos; 1.30 + void **insertPos = (void **)Q->insertPos; 1.31 + void **extractPos = (void **)Q->extractPos; 1.32 1.33 //if not empty -- extract just below insert when empty 1.34 if( insertPos - extractPos != 1 && 1.35 @@ -77,7 +78,7 @@ 1.36 else 1.37 { Q->extractPos++; 1.38 } 1.39 - out = *(Q->extractPos); 1.40 + out = (void *) *(Q->extractPos); 1.41 Q->extractLock = UNLOCKED; 1.42 return out; 1.43 } 1.44 @@ -109,8 +110,8 @@ 1.45 __sync_bool_compare_and_swap( &(Q->insertLock), UNLOCKED, LOCKED ); 1.46 if( gotLock ) 1.47 { 1.48 - void **insertPos = Q->insertPos; 1.49 - void **extractPos = Q->extractPos; 1.50 + void **insertPos = (void **)Q->insertPos; 1.51 + void **extractPos = (void **)Q->extractPos; 1.52 1.53 //check if room to insert.. can't use a count variable 1.54 // 'cause both insertor Thd and extractor Thd would write it
