]> git.ipfire.org Git - thirdparty/bind9.git/commit
isc_async_run() runs events in reverse order
authorEvan Hunt <each@isc.org>
Sun, 30 Oct 2022 01:05:39 +0000 (18:05 -0700)
committerEvan Hunt <each@isc.org>
Mon, 31 Oct 2022 12:43:45 +0000 (05:43 -0700)
commitdc878e3098b189e635ca003e80f18b5df6883007
tree74cd02e8cffc0fac686415c2aae15569fc9cbc0d
parent0f4af13906a7b9236c492c0a10952220aeb92a3e
isc_async_run() runs events in reverse order

when more than one event was scheduled in the isc_aysnc queue,
they were executed in reverse order. we need to pull events
off the back of queue instead the front, so that uv_loop will
run them in the right order.

note that isc_job_run() has the same behavior, because it calls
uv_idle_start() directly. in that case we just document it so
it'll be less surprising in the future.
lib/isc/async.c
lib/isc/include/isc/job.h
lib/isc/loop.c
tests/isc/async_test.c
tests/isc/job_test.c