]> git.ipfire.org Git - thirdparty/bind9.git/commit
Make dns_dispatch bound to threads
authorOndřej Surý <ondrej@isc.org>
Fri, 15 Sep 2023 09:36:28 +0000 (11:36 +0200)
committerOndřej Surý <ondrej@isc.org>
Sat, 16 Sep 2023 05:32:17 +0000 (07:32 +0200)
commit6fd06c461bec2e397a8fc79ffa508785cf164740
treeb4d88052ea3e19c17b43ecfb234950366b372edb
parent282c4709b87ca370e6f00d4be39551064e2f19be
Make dns_dispatch bound to threads

Instead of high number of dispatches (4 * named_g_udpdisp)[1], make the
dispatches bound to threads and make dns_dispatchset_t create a dispatch
for each thread (event loop).

This required couple of other changes:

1. The dns_dispatch_createudp() must be called on loop, so the isc_tid()
   is already initialized - changes to nsupdate and mdig were required.

2. The dns_requestmgr had only a single dispatch per v4 and v6.  Instead
   of using single dispatch, use dns_dispatchset_t for each protocol -
   this is same as dns_resolver.
19 files changed:
bin/delv/delv.c
bin/named/include/named/globals.h
bin/named/main.c
bin/named/server.c
bin/nsupdate/nsupdate.c
bin/tools/mdig.c
lib/dns/client.c
lib/dns/dispatch.c
lib/dns/include/dns/dispatch.h
lib/dns/include/dns/resolver.h
lib/dns/include/dns/view.h
lib/dns/request.c
lib/dns/resolver.c
lib/dns/view.c
lib/isc/include/isc/tid.h
lib/isc/tid.c
lib/ns/include/ns/interfacemgr.h
tests/dns/dispatch_test.c
tests/dns/resolver_test.c