diff --git a/include/villas/queue.h b/include/villas/queue.h index 30e29b64b..50e850260 100644 --- a/include/villas/queue.h +++ b/include/villas/queue.h @@ -56,7 +56,7 @@ struct queue_cell { struct queue { cacheline_pad_t _pad0; /**< Shared area: all threads read */ - atomic_size_t state; + _Atomic enum state state; struct memtype *mem; size_t buffer_mask; diff --git a/lib/queue.c b/lib/queue.c index a10d9c360..2ca6c86c1 100644 --- a/lib/queue.c +++ b/lib/queue.c @@ -188,8 +188,8 @@ int queue_pull_many(struct queue *q, void *ptr[], size_t cnt) int queue_close(struct queue *q) { - size_t expected = STATE_INITIALIZED; - if (atomic_compare_exchange_weak_explicit(&q->state, &expected, STATE_STOPPED, memory_order_relaxed, memory_order_relaxed)) { + enum state expected = STATE_INITIALIZED; + if (atomic_compare_exchange_weak_explicit(&q->state, &expected, STATE_STOPPED, memory_order_relaxed, memory_order_relaxed)) return 0; return -1;