# HG changeset patch # User Sean Halle # Date 1347264714 25200 # Node ID b66352de717efa94b458d04094591ba1ba9b03ba # Parent b9cb01d8ce569a10a031cf37d2aec59b7b12c621 Updated default branch to working versions of all the sub repos diff -r b9cb01d8ce56 -r b66352de717e BlockingQueue.c --- a/BlockingQueue.c Wed Jun 06 18:00:59 2012 -0700 +++ b/BlockingQueue.c Mon Sep 10 01:11:54 2012 -0700 @@ -73,8 +73,8 @@ !(extractPos == endOfData && insertPos == startOfData)) { //move before read if( extractPos == endOfData ) //write new pos exactly once, correctly - { Q->extractPos = startOfData; //can't overrun then fix it 'cause - } // other thread might read bad pos + { Q->extractPos = (volatile void **)startOfData; + } else { Q->extractPos++; } @@ -119,7 +119,7 @@ !(insertPos == endOfData && extractPos == startOfData)) { *(Q->insertPos) = in; //insert before move if( insertPos == endOfData ) - { Q->insertPos = startOfData; + { Q->insertPos = (volatile void **)startOfData; } else { Q->insertPos++;