c++ - Cache Flushing issue in release build -
c++ - Cache Flushing issue in release build -
i seeing unusual problem in code:
namespace{ std::vector<int> my_vect; } thread1: sleep(5); my_vect.push_back(1); main_thread: while(my_vect.empty()); //do return;
when built in debug, works expected. when in release while loop never exits...
when changed while loop busy wait a:
while(my_vect.empty()) { sleep(1); }
the release built started working again.
any thought why happening?
yes: unsynchronized access shared variable undefined behavior, , may happen. observed behavior isn't particularly unusual.
c++ cpu
Comments
Post a Comment