diff options
| author | Omar Rizwan <omar@omar.website> | 2024-11-06 11:56:01 +0000 |
|---|---|---|
| committer | Omar Rizwan <omar@omar.website> | 2024-11-06 11:56:01 +0000 |
| commit | ecfb20bd2f88de3efaa48c824d8b763a0525d4bf (patch) | |
| tree | cdf178d6bfd2961817e826de7e0391724ab1e421 /workqueue.c | |
| parent | web/threads: Show work queue items in more detail (diff) | |
| download | folk-ecfb20bd2f88de3efaa48c824d8b763a0525d4bf.tar.gz folk-ecfb20bd2f88de3efaa48c824d8b763a0525d4bf.zip | |
WIP: report workqueue sizes on steal trace
Diffstat (limited to 'workqueue.c')
| -rw-r--r-- | workqueue.c | 7 |
1 files changed, 7 insertions, 0 deletions
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; +} |
