]> git.ipfire.org Git - thirdparty/bind9.git/commit
Use atomic stack for async job queue
authorOndřej Surý <ondrej@isc.org>
Mon, 20 Feb 2023 15:16:07 +0000 (16:16 +0100)
committerTony Finch <fanf@isc.org>
Wed, 22 Feb 2023 16:13:37 +0000 (16:13 +0000)
commit6eb1340d1bd263816ac5eb415f8ecfaee426f57b
tree714bcc026a5067d07641e05f357e3e2228778d1b
parent36e56923ce7a5958fe5b00281ee1364afc95eb6a
Use atomic stack for async job queue

Previously, the async job queue would use a locked-list (ISC_LIST).
With introduction of atomic stack (that has to be drained at once), we
could use it to remove some contention between the threads and simplify
the async queue.

Fortunately, the reverse order still works for us - instead of append
and tail/prev operation on the list, we are now using prepend and
head/next operation on the atomic stack.
lib/isc/async.c
lib/isc/job.c
lib/isc/loop.c
lib/isc/loop_p.h