bind9/lib/isc
Tony Finch c319ccd4c9 Fixes for liburcu-qsbr
Move registration and deregistration of the main thread from
`isc_loopmgr_run()` into `isc__initialize()` / `isc__shutdown()`:
liburcu-qsbr fails an assertion if we try to use it from an
unregistered thread, and we need to be able to use it when the
event loops are not running.

Use `rcu_assign_pointer()` and `rcu_dereference()` in qp-trie
transactions so that they properly mark threads as online. The
RCU-protected pointer is no longer declared atomic because
liburcu does not (yet) use standard C atomics.

Fix the definition of `isc_qsbr_rcu_dereference()` to return
the referenced value, and to call the right function inside
liburcu.

Change the thread sanitizer suppressions to match any variant of
`rcu_*_barrier()`
2023-05-15 20:49:42 +00:00
..
include Fixes for liburcu-qsbr 2023-05-15 20:49:42 +00:00
netmgr allow streamdns read to resume after timeout 2023-05-13 23:31:45 -07:00
.gitignore [master] update gitignore files; use rev-parse to get srcid 2014-06-17 13:49:30 -07:00
aes.c Remove EVP_CIPHER_CTX_new() and EVP_CIPHER_CTX_free() shims 2022-03-02 10:48:09 +00:00
ascii.c Consolidate some ASCII tables in isc/ascii and isc/hex 2022-09-12 12:18:57 +01:00
assertions.c Ad-hoc backtrace logging with isc_backtrace_log() 2023-03-29 10:47:53 +00:00
async.c Help thread sanitizer to cope with liburcu 2023-05-12 20:48:31 +01:00
async_p.h Change the isc_async API to use cds_wfcqueue internally 2023-05-12 14:16:25 +02:00
backtrace.c Ad-hoc backtrace logging with isc_backtrace_log() 2023-03-29 10:47:53 +00:00
base32.c Silence uninitialized value false positives 2023-03-08 22:40:03 +00:00
base64.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:33:43 +01:00
commandline.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
condition.c De-duplicate some calls to strerror_r() 2022-10-17 11:58:26 +01:00
counter.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
crc64.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
dir.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
entropy.c Switch the CSPRNG function from RAND_bytes() to uv_random() 2022-09-26 15:13:11 +02:00
errno.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
errno2result.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
errno2result.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
error.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
file.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
fips.c Define isc_fips_mode() and isc_fips_set_mode() 2023-04-03 12:05:28 +10:00
getaddresses.c Move bind9_getaddresses() to isc_getaddresses() 2023-02-21 13:12:26 +00:00
hash.c Improve reporting for pthread_once errors 2022-10-14 16:39:21 +02:00
hashmap.c Replace __attribute__((unused)) with ISC_ATTR_UNUSED attribute macro 2023-03-30 23:29:25 +02:00
heap.c Update sources to Clang 15 formatting 2022-11-29 08:54:34 +01:00
hex.c Consolidate some ASCII tables in isc/ascii and isc/hex 2022-09-12 12:18:57 +01:00
histo.c A macro for the size of a struct with a flexible array member 2023-05-12 20:48:31 +01:00
hmac.c Fix memory leak in isc_hmac_init 2023-02-26 22:56:07 +00:00
ht.c A macro for the size of a struct with a flexible array member 2023-05-12 20:48:31 +01:00
httpd.c Fix potential UAF when shutting down isc_httpd 2023-04-25 08:16:46 +02:00
interfaceiter.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
iterated_hash.c Require C11 thread_local keyword and <threads.h> header 2023-02-08 21:33:23 +01:00
jemalloc_shim.h Fix ISC_MEM_ZERO on allocators with malloc_usable_size() 2023-02-06 11:21:12 +00:00
job.c Change the isc_async API to use cds_wfcqueue internally 2023-05-12 14:16:25 +02:00
job_p.h Change the isc_async API to use cds_wfcqueue internally 2023-05-12 14:16:25 +02:00
lex.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
lib.c Fixes for liburcu-qsbr 2023-05-15 20:49:42 +00:00
log.c Re-write remove_old_tsversions and greatest_version 2023-05-03 09:12:34 +02:00
loop.c Fixes for liburcu-qsbr 2023-05-15 20:49:42 +00:00
loop_p.h Remove isc_qsbr (we are using liburcu instead) 2023-05-12 20:48:31 +01:00
Makefile.am Remove the now-unused ISC_STACK 2023-05-12 20:49:43 +01:00
managers.c remove isc_task completely 2023-02-16 18:35:32 +01:00
md.c Handle MD5 not being supported by lib crypto 2023-04-03 12:44:27 +10:00
mem.c Wait for RCU to finish before destroying a memory context 2023-05-12 20:48:31 +01:00
mem_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
meminfo.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
mutex.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
mutex_p.h Use library constructor to create default mutex attr once 2022-07-13 13:19:32 +02:00
mutexblock.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
net.c Remove do-nothing header <isc/netdb.h> 2023-02-15 16:44:47 +00:00
netaddr.c Replace DE_CONST(k, v) with v = UNCONST(k) macro 2023-04-03 10:25:56 +00:00
netscope.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
nonce.c Switch the CSPRNG function from RAND_bytes() to uv_random() 2022-09-26 15:13:11 +02:00
openssl_shim.c Do not provide a shim for SSL_SESSION_is_resumable() 2022-05-23 18:25:18 +03:00
openssl_shim.h Do not provide a shim for SSL_SESSION_is_resumable() 2022-05-23 18:25:18 +03:00
os.c Add isc_os_umask() function to get current umask 2023-03-31 12:52:59 +00:00
os_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
parseint.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
picohttpparser.c Update sources to Clang 15 formatting 2022-11-29 08:54:34 +01:00
picohttpparser.h Add picohttpparser.{c.h} from https://github.com/h2o/picohttpparser 2022-10-14 11:26:54 +02:00
portset.c Use designated initializers instead of memset()/MEM_ZERO for structs 2022-10-05 16:44:05 +02:00
quota.c Help thread sanitizer to cope with liburcu 2023-05-12 20:48:31 +01:00
radix.c Update sources to Clang 15 formatting 2022-11-29 08:54:34 +01:00
random.c Move the isc_random API initialization to the thread_local variable 2023-04-27 12:38:53 +02:00
ratelimiter.c remove isc_task completely 2023-02-16 18:35:32 +01:00
regex.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
region.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
result.c add a result code for ENOPROTOOPT, EPROTONOSUPPORT 2023-04-21 12:42:10 +02:00
rwlock.c Add the reader-writer synchronization with modified C-RW-WP 2023-02-15 09:30:04 +01:00
safe.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
serial.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
signal.c Fix a crash when dig or host receive a signal 2023-03-31 09:52:54 +00:00
siphash.c Silence NULL pointer dereferene false positive 2023-04-03 13:32:40 +00:00
sockaddr.c add ns_interface_create() 2023-03-28 12:38:28 -07:00
stats.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
stdio.c Remove do-nothing header <isc/stat.h> 2023-02-15 16:44:47 +00:00
stdtime.c Provide isc_stdtime_now(void) that returns value 2023-03-31 13:16:28 +02:00
string.c Explain <isc/strerr.h> a little more 2023-02-15 16:44:09 +00:00
symtab.c Replace DE_CONST(k, v) with v = UNCONST(k) macro 2023-04-03 10:25:56 +00:00
syslog.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
tests Move all the unit tests to /tests/<libname>/ 2022-05-28 14:53:02 -07:00
thread.c Use per-CPU RCU helper threads 2023-05-12 20:48:31 +01:00
tid.c Make isc_tid() a header-only function 2023-04-12 14:10:37 +02:00
time.c Refactor isc_time_now() to return time, and not result 2023-03-31 15:02:06 +02:00
timer.c remove isc_task completely 2023-02-16 18:35:32 +01:00
tls.c Don't check for OPENSSL_cleanup failures by default 2023-04-03 12:44:27 +10:00
tm.c Replace DE_CONST(k, v) with v = UNCONST(k) macro 2023-04-03 10:25:56 +00:00
url.c Update sources to Clang 15 formatting 2022-11-29 08:54:34 +01:00
utf8.c Update sources to Clang 15 formatting 2022-11-29 08:54:34 +01:00
uv.c add a result code for ENOPROTOOPT, EPROTONOSUPPORT 2023-04-21 12:42:10 +02:00
work.c Improve the Userspace RCU integration 2023-04-27 12:38:53 +02:00
xml.c Add autoconf option to enable memory leak detection in libraries 2022-09-27 17:53:04 +02:00