]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Clarify that cds_wfcq_dequeue_blocking() doesn't block if empty
authorOndřej Surý <ondrej@isc.org>
Wed, 3 Jul 2024 09:51:09 +0000 (11:51 +0200)
committerOndřej Surý <ondrej@isc.org>
Mon, 5 Aug 2024 07:30:10 +0000 (07:30 +0000)
lib/isc/quota.c

index ad58f3381063d4e14801e97fab4978b774a50c77..a4ddebc6125263cbd714409a16b844e78b27d1ed 100644 (file)
@@ -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(&quota->jobs.head, &quota->jobs.tail);