void threadA(void *arg)
{
-// std::this_thread::sleep_for(std::chrono::milliseconds(10));
+ std::this_thread::sleep_for(std::chrono::milliseconds(10));
store_32(&var, 1);
barr->wait();
}
void threadB(void *arg)
{
-// std::this_thread::sleep_for(std::chrono::milliseconds(10));
+ std::this_thread::sleep_for(std::chrono::milliseconds(10));
barr->wait();
printf("var = %d\n", load_32(&var));
}
void p0()
{
-// std::this_thread::sleep_for(std::chrono::milliseconds(10));
+ std::this_thread::sleep_for(std::chrono::milliseconds(10));
flag0.store(true,std::memory_order_relaxed);
//std::atomic_thread_fence(std::memory_order_seq_cst);
void p1()
{
-// std::this_thread::sleep_for(std::chrono::milliseconds(10));
+ std::this_thread::sleep_for(std::chrono::milliseconds(10));
flag1.store(true,std::memory_order_relaxed);
std::atomic_thread_fence(std::memory_order_seq_cst);
void a()
{
-// std::this_thread::sleep_for(std::chrono::milliseconds(10));
+ std::this_thread::sleep_for(std::chrono::milliseconds(10));
int i, rs;
for(i = 0; i < 2; i++) {
if ((i % 2) == 0) {
void threadA(void *arg)
{
-// std::this_thread::sleep_for(std::chrono::milliseconds(10));
+ std::this_thread::sleep_for(std::chrono::milliseconds(10));
mcs_mutex::guard g(mutex);
printf("store: %d\n", 17);
store_32(&shared, 17);
void threadB(void *arg)
{
-// std::this_thread::sleep_for(std::chrono::milliseconds(10));
+ std::this_thread::sleep_for(std::chrono::milliseconds(10));
mcs_mutex::guard g(mutex);
printf("load: %u\n", load_32(&shared));
mutex->unlock(&g);
void threadA(struct mpmc_boundq_1_alt<int32_t, sizeof(int32_t)> *queue)
{
-// std::this_thread::sleep_for(std::chrono::milliseconds(10));
+ std::this_thread::sleep_for(std::chrono::milliseconds(10));
int32_t *bin = queue->write_prepare();
store_32(bin, 1);
queue->write_publish();
void threadB(struct mpmc_boundq_1_alt<int32_t, sizeof(int32_t)> *queue)
{
-// std::this_thread::sleep_for(std::chrono::milliseconds(10));
+ std::this_thread::sleep_for(std::chrono::milliseconds(10));
int32_t *bin;
while ((bin = queue->read_fetch()) != NULL) {
printf("Read: %d\n", load_32(bin));
void threadC(struct mpmc_boundq_1_alt<int32_t, sizeof(int32_t)> *queue)
{
-// std::this_thread::sleep_for(std::chrono::milliseconds(10));
+ std::this_thread::sleep_for(std::chrono::milliseconds(10));
int32_t *bin = queue->write_prepare();
store_32(bin, 1);
queue->write_publish();
EXE=$1
TOTAL_RUN=500
-CDSLIB="/home/vagrant/c11tester"
-export LD_LIBRARY_PATH=${CDSLIB}
-export C11TESTER='-x1'
-
COUNT_DATA_RACE=0
COUNT_TIME=0