# HG changeset patch # User Some Random Person # Date 1331555985 25200 # Node ID 7d35d7f42cd59a045e822b513c5c60a9e9c2ed29 # Parent dabefab7d2640390de8adb46ecf5066a364efbab added casts to fix warnings diff -r dabefab7d264 -r 7d35d7f42cd5 BlockingQueue.c --- a/BlockingQueue.c Fri Mar 09 22:12:01 2012 -0800 +++ b/BlockingQueue.c Mon Mar 12 05:39:45 2012 -0700 @@ -11,6 +11,7 @@ #include #include #include +#include #include "BlockingQueue.h" @@ -38,9 +39,9 @@ retQ->insertLock = UNLOCKED; retQ->extractLock= UNLOCKED; - //TODO: check got pointer syntax right - retQ->extractPos = &(retQ->startOfData[0]); //side by side == empty - retQ->insertPos = &(retQ->startOfData[1]); // so start pos's have to be + + retQ->extractPos = (volatile void**)&(retQ->startOfData[0]); //side by side == empty + retQ->insertPos = (volatile void**)&(retQ->startOfData[1]); // so start pos's have to be retQ->endOfData = &(retQ->startOfData[1023]); return retQ; @@ -64,8 +65,8 @@ //NOTE: checked assy, and it does lock correctly.. if( gotLock ) { - void **insertPos = Q->insertPos; - void **extractPos = Q->extractPos; + void **insertPos = (void **)Q->insertPos; + void **extractPos = (void **)Q->extractPos; //if not empty -- extract just below insert when empty if( insertPos - extractPos != 1 && @@ -77,7 +78,7 @@ else { Q->extractPos++; } - out = *(Q->extractPos); + out = (void *) *(Q->extractPos); Q->extractLock = UNLOCKED; return out; } @@ -109,8 +110,8 @@ __sync_bool_compare_and_swap( &(Q->insertLock), UNLOCKED, LOCKED ); if( gotLock ) { - void **insertPos = Q->insertPos; - void **extractPos = Q->extractPos; + void **insertPos = (void **)Q->insertPos; + void **extractPos = (void **)Q->extractPos; //check if room to insert.. can't use a count variable // 'cause both insertor Thd and extractor Thd would write it