}
}
/* free_list is empty? */
- MODEL_ASSERT(0);
+ //MODEL_ASSERT(0);
return 0;
}
int t = get_thread_num();
/* Don't reclaim NULL node */
- MODEL_ASSERT(node);
+ //MODEL_ASSERT(node);
for (i = 0; i < MAX_FREELIST; i++) {
/* Should never race with our own thread here */
}
}
/* free list is full? */
- MODEL_ASSERT(0);
+ //MODEL_ASSERT(0);
}
void init_queue(queue_t *q, int num_threads)
tail = atomic_load_explicit(&q->tail, acquire);
/****FIXME: miss ****/
next = atomic_load_explicit(&q->nodes[get_ptr(tail)].next, acquire);
- printf("miss1_enqueue\n");
+ //printf("miss1_enqueue\n");
if (tail == atomic_load_explicit(&q->tail, relaxed)) {
/* Check for uninitialized 'next' */
succ = atomic_compare_exchange_strong_explicit(&q->tail,
&tail, value, release, relaxed);
if (succ) {
- printf("miss2_enqueue CAS succ\n");
+ //printf("miss2_enqueue CAS succ\n");
}
- printf("miss2_enqueue\n");
+ //printf("miss2_enqueue\n");
thrd_yield();
}
}
tail = atomic_load_explicit(&q->tail, relaxed);
/****FIXME: miss ****/
next = atomic_load_explicit(&q->nodes[get_ptr(head)].next, acquire);
- printf("miss3_dequeue\n");
+ //printf("miss3_dequeue\n");
if (atomic_load_explicit(&q->head, relaxed) == head) {
if (get_ptr(head) == get_ptr(tail)) {
/* Check for uninitialized 'next' */
- MODEL_ASSERT(get_ptr(next) != POISON_IDX);
+ //MODEL_ASSERT(get_ptr(next) != POISON_IDX);
if (get_ptr(next) == 0) { // NULL
/**
MAKE_POINTER(get_ptr(next), get_count(tail) + 1),
release, relaxed);
if (succ) {
- printf("miss4_dequeue CAS succ\n");
+ //printf("miss4_dequeue CAS succ\n");
}
- printf("miss4_dequeue\n");
+ //printf("miss4_dequeue\n");
thrd_yield();
} else {
value = load_32(&q->nodes[get_ptr(next)].value);