bind9/lib/isc/include/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
..
aes.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
app.h apply the modified style 2020-02-13 15:05:06 -08:00
assertions.h Complete rewrite the BIND 9 build system 2020-04-21 14:19:48 +02:00
astack.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
atomic.h Use memory_order_acq_rel in isc_refcount_decrement. 2020-09-01 12:05:18 +00:00
attributes.h Complete rewrite the BIND 9 build system 2020-04-21 14:19:48 +02:00
backtrace.h Improve the backtrace to print symbols when backtrace_symbols() is available 2020-03-11 20:32:21 +01:00
base32.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
base64.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
bind9.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
buffer.h Fix/improve some comments in buffer.h. 2020-04-16 15:57:33 +02:00
bufferlist.h Use clang-tidy to add curly braces around one-line statements 2020-02-13 22:07:21 +01:00
commandline.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
counter.h Use clang-tidy to add curly braces around one-line statements 2020-02-13 22:07:21 +01:00
crc64.h Replace custom isc_u?intNN_t types with C99 u?intNN_t types 2018-08-08 09:37:28 +02:00
deprecated.h Use clang-tidy to add curly braces around one-line statements 2020-02-13 22:07:21 +01:00
endian.h Use clang-tidy to add curly braces around one-line statements 2020-02-13 22:07:21 +01:00
errno.h Update license headers to not include years in copyright in all applicable files 2018-02-23 10:12:02 +01:00
error.h Complete rewrite the BIND 9 build system 2020-04-21 14:19:48 +02:00
event.h apply the modified style 2020-02-13 15:05:06 -08:00
eventclass.h apply the modified style 2020-02-13 15:05:06 -08:00
file.h Use clang-tidy to add curly braces around one-line statements 2020-02-13 22:07:21 +01:00
formatcheck.h Use clang-tidy to add curly braces around one-line statements 2020-02-13 22:07:21 +01:00
fsaccess.h fix spelling errors reported by Fossies. 2020-02-21 15:05:08 +11:00
fuzz.h Update license headers to not include years in copyright in all applicable files 2018-02-23 10:12:02 +01:00
glob.h Make clang-format happy 2020-02-25 09:07:45 +01:00
hash.h Add isc_hash32() and rename isc_hash_function() to isc_hash64() 2020-07-21 08:44:26 +02:00
heap.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
hex.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
hmac.h Stop leaking OpenSSL types and defines in the isc/md.h 2020-03-17 09:11:13 +01:00
hp.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
ht.h Use clang-tidy to add curly braces around one-line statements 2020-02-13 22:07:21 +01:00
httpd.h rewrite statschannel to use netmgr 2020-07-15 22:35:07 -07:00
interfaceiter.h apply the modified style 2020-02-13 15:05:06 -08:00
iterated_hash.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
lang.h apply the modified style 2020-02-13 15:05:06 -08:00
lex.h fix spelling errors reported by Fossies. 2020-02-21 15:05:08 +11:00
lib.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
likely.h apply the modified style 2020-02-13 15:05:06 -08:00
list.h Fixup the missing clang-format bits 2020-02-16 17:34:24 +01:00
log.h add a quick-and-dirty method of debugging a single query 2020-05-26 00:47:18 -07:00
magic.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
md.h Stop leaking OpenSSL types and defines in the isc/md.h 2020-03-17 09:11:13 +01:00
mem.h apply the modified style 2020-02-13 15:05:06 -08:00
meminfo.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
mutexatomic.h Make the stdatomic shim and mutexatomic type complete 2020-07-08 09:39:02 +10:00
mutexblock.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
netaddr.h Complete rewrite the BIND 9 build system 2020-04-21 14:19:48 +02:00
netmgr.h use handles for isc_nm_pauseread() and isc_nm_resumeread() 2020-07-13 13:17:08 -07:00
netscope.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
nonce.h Replace custom isc_u?intNN_t types with C99 u?intNN_t types 2018-08-08 09:37:28 +02:00
os.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
parseint.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
platform.h.in Complete rewrite the BIND 9 build system 2020-04-21 14:19:48 +02:00
pool.h Use clang-tidy to add curly braces around one-line statements 2020-02-13 22:07:21 +01:00
portset.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
print.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
queue.h implement fetch-and-add array queue data structure 2019-11-07 11:55:37 -08:00
quota.h Redesigned TCP accepting: one listen/accept loop, passing the connected socket. 2020-05-13 08:45:27 +02:00
radix.h apply the modified style 2020-02-13 15:05:06 -08:00
random.h Replace custom isc_u?intNN_t types with C99 u?intNN_t types 2018-08-08 09:37:28 +02:00
ratelimiter.h Use clang-tidy to add curly braces around one-line statements 2020-02-13 22:07:21 +01:00
readline.h Update and cleanup the readline library support 2020-08-18 10:27:14 +02:00
refcount.h Use memory_order_acq_rel in isc_refcount_decrement. 2020-09-01 12:05:18 +00:00
regex.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
region.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
resource.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
result.h apply the modified style 2020-02-13 15:05:06 -08:00
resultclass.h apply the modified style 2020-02-13 15:05:06 -08:00
rwlock.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
safe.h Stop leaking OpenSSL types and defines in the isc/safe.h 2020-03-12 20:07:16 +01:00
serial.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
siphash.h Add HalfSipHash 2-4 reference implementation 2020-07-21 08:44:26 +02:00
sockaddr.h Complete rewrite the BIND 9 build system 2020-04-21 14:19:48 +02:00
socket.h fix spelling errors reported by Fossies. 2020-02-21 15:05:08 +11:00
stats.h fix spelling errors reported by Fossies. 2020-02-21 15:05:08 +11:00
stdio.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
strerr.h Use clang-tidy to add curly braces around one-line statements 2020-02-13 22:07:21 +01:00
string.h Use clang-tidy to add curly braces around one-line statements 2020-02-13 22:07:21 +01:00
symtab.h Use clang-tidy to add curly braces around one-line statements 2020-02-13 22:07:21 +01:00
task.h apply the modified style 2020-02-13 15:05:06 -08:00
taskpool.h Use clang-tidy to add curly braces around one-line statements 2020-02-13 22:07:21 +01:00
timer.h apply the modified style 2020-02-13 15:05:06 -08:00
tm.h Use clang-format to reformat the source files 2020-02-12 15:04:17 +01:00
types.h Remove support for internal symbol table 2020-03-11 11:13:52 +01:00
utf8.h Report Extended DNS Error codes 2020-05-12 22:01:54 +10:00
util.h Add +yaml support for EDE 2020-06-05 08:34:51 +10:00