bind9/util
Ondřej Surý cbbecfcc82 Add isc_trampoline API to have simple accounting around threads
The current isc_hp API uses internal tid_v variable that gets
incremented for each new thread using hazard pointers.  This tid_v
variable is then used as a index to global shared table with hazard
pointers state.  Since the tid_v is only incremented and never
decremented the table could overflow very quickly if we create set of
threads for short period of time, they finish the work and cease to
exist.  Then we create identical set of threads and so on and so on.
This is not a problem for a normal `named` operation as the set of
threads is stable, but the problematic place are the unit tests where we
test network manager or other APIs (task, timer) that create threads.

This commits adds a thin wrapper around any function called from
isc_thread_create() that adds unique-but-reusable small digit thread id
that can be used as index to f.e. hazard pointer tables.  The trampoline
wrapper ensures that the thread ids will be reused, so the highest
thread_id number doesn't grow indefinitely when threads are created and
destroyed and then created again.  This fixes the hazard pointer table
overflow on machines with many cores. [GL #2396]
2021-02-25 16:21:10 +01:00
..
bindkeys.pl update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
branchsync.sh update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
check-categories.sh update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
check-changes update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
check-cocci Run the check-cocci on the whole tree, allow passing extra arguments 2020-02-08 03:12:09 -08:00
check-includes.pl update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
check-instincludes.sh update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
check-line-length.sh Detect overly long CHANGES lines 2021-01-28 13:49:02 +11:00
check-make-install.in update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
check-pullups.pl update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
check-sources.pl update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
check-win32util-configure update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
checklibs.sh update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
commit-arm.sh update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
COPYRIGHT fix a typo in copyright headers, and change "http" to "https" 2020-09-14 16:19:37 -07:00
COPYRIGHT.BRIEF fix a typo in copyright headers, and change "http" to "https" 2020-09-14 16:19:37 -07:00
COPYRIGHT.BSDI fix a typo in copyright headers, and change "http" to "https" 2020-09-14 16:19:37 -07:00
COPYRIGHT.NAI fix a typo in copyright headers, and change "http" to "https" 2020-09-14 16:19:37 -07:00
COPYRIGHT.NOM fix a typo in copyright headers, and change "http" to "https" 2020-09-14 16:19:37 -07:00
COPYRIGHT.PORTION fix a typo in copyright headers, and change "http" to "https" 2020-09-14 16:19:37 -07:00
COPYRIGHT.TOP fix a typo in copyright headers, and change "http" to "https" 2020-09-14 16:19:37 -07:00
copyrights Add isc_trampoline API to have simple accounting around threads 2021-02-25 16:21:10 +01:00
git-replay-merge.sh update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
kit.sh update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
mandoc2docbook.pl update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
mdnbuildtest.sh update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
memleak.pl update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
merge_copyrights Add the ISC DNSSEC Guide as a BIND 9 ARM appendix 2021-01-08 13:12:20 +01:00
models.c update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
nanny.pl update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
new-func update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
nt-kit update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
pairwise-testing.sh Do not remove stderr from pict output 2021-02-23 15:23:58 +01:00
parse_tsan.py update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
run-clang-tidy Add copy of run-clang-tidy that can fixup the filepaths 2020-02-13 22:06:05 +01:00
spacewhack.pl update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
suppressions.txt Refactor netmgr and add more unit tests 2020-12-01 16:47:07 +01:00
tabify-changes update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
unused-headers.sh Add unused headers check to CI 2020-11-11 10:08:12 +01:00
update-drafts.pl update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
update_branches update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00
update_copyrights update all copyright headers to eliminate the typo 2020-09-14 16:20:40 -07:00