resize(q);
// CDSSpec can actually detect the same bug if we avoid the UL error
//Bug in paper...should have next line...
- //a = (Array *) atomic_load_explicit(&q->array, memory_order_relaxed);
+ a = (Array *) atomic_load_explicit(&q->array, memory_order_relaxed);
/**
//@Begin
@Commit_point_define_check: true
treiber-stack
DIRS := ms-queue concurrent-hashmap linuxrwlocks mcs-lock read-copy-update \
- chase-lev-deque-bugfix spsc-bugfix mpmc-queue
+ chase-lev-deque-bugfix spsc-bugfix mpmc-queue seqlock
.PHONY: $(DIRS)
INCLUDE = -I$(BASE)/include -I../include -I$(BASE)/spec-analysis -I$(BASE)
# C preprocessor flags
-CPPFLAGS += $(INCLUDE) -g
+CPPFLAGS += $(INCLUDE) -O3
# C++ compiler flags
CXXFLAGS += $(CPPFLAGS)
Array *a = (Array *) atomic_load_explicit(&q->array, memory_order_relaxed);
if (b - t > atomic_load_explicit(&a->size, memory_order_relaxed) - 1) {
resize(q);
-
+ a = (Array *) atomic_load_explicit(&q->array, memory_order_relaxed);
+
}
int size = atomic_load_explicit(&a->size, memory_order_relaxed);