From 912eaf6cb9f153cc8551e1ad0d8aa7b7a725fc84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Wed, 3 Jul 2024 11:51:09 +0200 Subject: [PATCH] Clarify that cds_wfcq_dequeue_blocking() doesn't block if empty --- lib/isc/quota.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/isc/quota.c b/lib/isc/quota.c index ad58f33810..a4ddebc612 100644 --- a/lib/isc/quota.c +++ b/lib/isc/quota.c @@ -70,6 +70,10 @@ isc_quota_release(isc_quota_t *quota) { * We are using the cds_wfcq_dequeue_blocking() variant here that * has an internal mutex because we need synchronization on * multiple dequeues running from different threads. + * + * NOTE: cds_wfcq_dequeue_blocking() checks whether the queue is free + * with cds_wfcq_empty() before acquiring the internal lock, so if + * there's nothing queued, the call should be very lightweight. */ struct cds_wfcq_node *node = cds_wfcq_dequeue_blocking("a->jobs.head, "a->jobs.tail);