From ecfb20bd2f88de3efaa48c824d8b763a0525d4bf Mon Sep 17 00:00:00 2001 From: Omar Rizwan Date: Wed, 6 Nov 2024 18:56:01 +0700 Subject: WIP: report workqueue sizes on steal trace --- workqueue.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'workqueue.c') diff --git a/workqueue.c b/workqueue.c index 032bc363..9d7238ea 100644 --- a/workqueue.c +++ b/workqueue.c @@ -183,3 +183,10 @@ int unsafe_workQueueCopy(WorkQueueItem* into, int maxn, // FIXME: Return failure if anything has changed? return j; } +ssize_t unsafe_workQueueSize(WorkQueue* q) { + size_t t = atomic_load_explicit(&q->top, memory_order_acquire); + atomic_thread_fence(memory_order_seq_cst); + size_t b = atomic_load_explicit(&q->bottom, memory_order_acquire); + ssize_t size = b - t; + return size; +} -- cgit v1.2.3