bind9/lib/isc
Mark Andrews 6278899a38 Use memory_order_acq_rel in isc_refcount_decrement.
While

if (isc_refcount_decrement() == 1) {	// memory_order_release
	isc_refcount_destroy();		// memory_order_acquire
	...
}

is theoretically the most efficent in practice, using
memory_order_acq_rel produces the same code on x86_64 and doesn't
trigger tsan data races (which use a idealistic model) if
isc_refcount_destroy() is not called immediately.  In fact
isc_refcount_destroy() could be removed if we didn't want
to check for the count being 0 when isc_refcount_destroy() is
called.

https://stackoverflow.com/questions/49112732/memory-order-in-shared-pointer-destructor
2020-09-01 12:05:18 +00:00
..
include Use memory_order_acq_rel in isc_refcount_decrement. 2020-09-01 12:05:18 +00:00
netmgr Use different allocators for UDP and TCP 2020-08-05 12:57:23 +02:00
pthreads change "expr == false" to "!expr" in conditionals 2020-05-25 16:09:57 -07:00
tests Add missing isc_mutex_init to manytasks subtest. 2020-08-24 22:38:08 +00:00
unix Handle EPROTO errno from recvmsg 2020-08-28 20:45:52 +02:00
win32 Always check the return from isc_refcount_decrement. 2020-07-31 10:15:44 +10:00
.gitignore [master] update gitignore files; use rev-parse to get srcid 2014-06-17 13:49:30 -07:00
aes.c Use the new sorting rules to regroup #include headers 2020-03-09 16:19:22 +01:00
api Update library API versions 2020-08-06 09:10:06 +02:00
app.c change "expr == false" to "!expr" in conditionals 2020-05-25 16:09:57 -07:00
assertions.c Fix 'error: ‘%s’ directive argument is null [-Werror=format-overflow=]' in assertions.c 2020-05-13 11:02:23 +02:00
astack.c change "expr == false" to "!expr" in conditionals 2020-05-25 16:09:57 -07:00
backtrace.c Improve the backtrace to print symbols when backtrace_symbols() is available 2020-03-11 20:32:21 +01:00
base32.c base32_decode*() could incorrectly decode a input. 2020-08-13 23:06:55 +10:00
base64.c Reformat using the new rules 2020-02-14 09:31:05 +01:00
bind9.c Use coccinelle to remove explicit '#include <config.h>' from the source files 2019-03-08 15:15:05 +01:00
buffer.c apply the modified style 2020-02-13 15:05:06 -08:00
bufferlist.c apply the modified style 2020-02-13 15:05:06 -08:00
commandline.c apply the modified style 2020-02-13 15:05:06 -08:00
counter.c apply the modified style 2020-02-13 15:05:06 -08:00
crc64.c apply the modified style 2020-02-13 15:05:06 -08:00
entropy.c Use the new sorting rules to regroup #include headers 2020-03-09 16:19:22 +01:00
entropy_private.h Replace custom isc_u?intNN_t types with C99 u?intNN_t types 2018-08-08 09:37:28 +02:00
error.c Reformat using the new rules 2020-02-14 09:31:05 +01:00
event.c apply the modified style 2020-02-13 15:05:06 -08:00
fsaccess_common.c Refactor lib/isc/fsaccess.c 2020-06-05 13:19:49 +02:00
fsaccess_common_p.h Refactor lib/isc/fsaccess.c 2020-06-05 13:19:49 +02:00
glob.c Define WIN32_LEAN_AND_MEAN globally instead of anecdotically 2020-05-28 11:28:44 +02:00
hash.c Add isc_hash32() and rename isc_hash_function() to isc_hash64() 2020-07-21 08:44:26 +02:00
heap.c apply the modified style 2020-02-13 15:05:06 -08:00
hex.c Reformat using the new rules 2020-02-14 09:31:05 +01:00
hmac.c Stop leaking OpenSSL types and defines in the isc/md.h 2020-03-17 09:11:13 +01:00
hp.c Complete rewrite the BIND 9 build system 2020-04-21 14:19:48 +02:00
ht.c Stop using AC_C_FLEXIBLE_ARRAY_MEMBER, support for it is part of C99 2020-05-28 11:28:44 +02:00
httpd.c Always check the return from isc_refcount_decrement. 2020-07-31 10:15:44 +10:00
iterated_hash.c apply the modified style 2020-02-13 15:05:06 -08:00
lex.c apply the modified style 2020-02-13 15:05:06 -08:00
lib.c apply the modified style 2020-02-13 15:05:06 -08:00
log.c Refactor the code that counts the last log version to keep 2020-07-31 09:30:12 +10:00
Makefile.am Update and cleanup the readline library support 2020-08-18 10:27:14 +02:00
md.c Stop leaking OpenSSL types and defines in the isc/md.h 2020-03-17 09:11:13 +01:00
mem.c Always check the return from isc_refcount_decrement. 2020-07-31 10:15:44 +10:00
mem_p.h retain a minimal "methods" struct in the mctx 2018-10-18 09:19:12 +00:00
mutexblock.c apply the modified style 2020-02-13 15:05:06 -08:00
netaddr.c Complete rewrite the BIND 9 build system 2020-04-21 14:19:48 +02:00
netscope.c Mark 'addr' as unused if HAVE_IF_NAMETOINDEX is not defined 2020-07-14 00:13:40 +00:00
nonce.c apply the modified style 2020-02-13 15:05:06 -08:00
openssl_shim.c Use the new sorting rules to regroup #include headers 2020-03-09 16:19:22 +01:00
openssl_shim.h Use clang-tidy to add curly braces around one-line statements 2020-02-13 22:07:21 +01:00
parseint.c apply the modified style 2020-02-13 15:05:06 -08:00
pk11.c Fix crash in pk11_numbits() when native-pkcs11 is used 2020-08-05 15:51:29 +02:00
pk11_result.c apply the modified style 2020-02-13 15:05:06 -08:00
pool.c apply the modified style 2020-02-13 15:05:06 -08:00
portset.c apply the modified style 2020-02-13 15:05:06 -08:00
queue.c apply the modified style 2020-02-13 15:05:06 -08:00
quota.c Don't clean quota cb cb_func/data, we don't own it 2020-06-10 17:52:00 +02:00
radix.c Address potential thread issues: 2020-06-25 12:04:36 +10:00
random.c Get rid of "helper" *.c files 2020-06-05 13:19:49 +02:00
ratelimiter.c Reformat using the new rules 2020-02-14 09:31:05 +01:00
regex.c fix spelling errors reported by Fossies. 2020-02-21 15:05:08 +11:00
region.c apply the modified style 2020-02-13 15:05:06 -08:00
result.c Use isc_rwlock for isc_result tables 2020-02-27 07:58:48 +00:00
rwlock.c Replace non-loop usage of atomic_compare_exchange_weak with strong variant 2020-02-16 18:09:19 +01:00
safe.c Stop leaking OpenSSL types and defines in the isc/safe.h 2020-03-12 20:07:16 +01:00
serial.c apply the modified style 2020-02-13 15:05:06 -08:00
siphash.c Add HalfSipHash 2-4 reference implementation 2020-07-21 08:44:26 +02:00
sockaddr.c Fix warnings in when build with --enable-buffer-useinline 2020-08-25 16:02:55 +02:00
stats.c Fix the memory ordering for the isc stats to be acquire-release 2020-04-03 19:41:46 +02:00
string.c apply the modified style 2020-02-13 15:05:06 -08:00
symtab.c apply the modified style 2020-02-13 15:05:06 -08:00
task.c Add missing isc_mutex_destroy and isc_conditional_destroy calls. 2020-05-29 19:18:58 +00:00
task_p.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
taskpool.c apply the modified style 2020-02-13 15:05:06 -08:00
timer.c Reformat using the new rules 2020-02-14 09:31:05 +01:00
timer_p.h Update license headers to not include years in copyright in all applicable files 2018-02-23 10:12:02 +01:00
tm.c apply the modified style 2020-02-13 15:05:06 -08:00
utf8.c Report Extended DNS Error codes 2020-05-12 22:01:54 +10:00