X-Git-Url: http://plrg.eecs.uci.edu/git/?p=folly.git;a=blobdiff_plain;f=folly%2FProducerConsumerQueue.h;h=d0bf3ec8c3436976a9fe95927f815d7919cf051b;hp=9ebe65acb46c66dbef1f9ab33e77e07fd968bdeb;hb=a60bf0bb374f4b57c0f00cd862e2861e1f381ed0;hpb=ff607e1b1829884a32bbe80d7815ddfce9b6d3bf;ds=sidebyside diff --git a/folly/ProducerConsumerQueue.h b/folly/ProducerConsumerQueue.h index 9ebe65ac..d0bf3ec8 100644 --- a/folly/ProducerConsumerQueue.h +++ b/folly/ProducerConsumerQueue.h @@ -64,12 +64,12 @@ struct ProducerConsumerQueue { // (No real synchronization needed at destructor time: only one // thread can be doing this.) if (!std::is_trivially_destructible::value) { - size_t read = readIndex_; - size_t end = writeIndex_; - while (read != end) { - records_[read].~T(); - if (++read == size_) { - read = 0; + size_t readIndex = readIndex_; + size_t endIndex = writeIndex_; + while (readIndex != endIndex) { + records_[readIndex].~T(); + if (++readIndex == size_) { + readIndex = 0; } } }