bind9/lib/isc
Ondřej Surý 6bd025942c Replace netievent lock-free queue with simple locked queue
The current implementation of isc_queue uses Michael-Scott lock-free
queue that in turn uses hazard pointers.  It was discovered that the way
we use the isc_queue, such complicated mechanism isn't really needed,
because most of the time, we either execute the work directly when on
nmthread (in case of UDP) or schedule the work from the matching
nmthreads.

Replace the current implementation of the isc_queue with a simple locked
ISC_LIST.  There's a slight improvement - since copying the whole list
is very lightweight - we move the queue into a new list before we start
the processing and locking just for moving the queue and not for every
single item on the list.

NOTE: There's a room for future improvements - since we don't guarantee
the order in which the netievents are processed, we could have two lists
- one unlocked that would be used when scheduling the work from the
matching thread and one locked that would be used from non-matching
thread.
2022-03-04 13:49:51 +01:00
..
include Replace netievent lock-free queue with simple locked queue 2022-03-04 13:49:51 +01:00
netmgr Replace netievent lock-free queue with simple locked queue 2022-03-04 13:49:51 +01:00
tests Replace netievent lock-free queue with simple locked queue 2022-03-04 13:49:51 +01: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
app.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
assertions.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
astack.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
backtrace.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
base32.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
base64.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
bind9.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
buffer.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
commandline.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
condition.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +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 Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
entropy.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
entropy_private.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01: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 Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
event.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
file.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
fsaccess.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
fsaccess_common.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
fsaccess_common_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
glob.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
hash.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
heap.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
hex.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
hmac.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
ht.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
httpd.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
interfaceiter.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
iterated_hash.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
jemalloc_shim.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
lex.c Grow the lex token buffer in one more place 2022-03-01 16:05:39 -08:00
lib.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
log.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
Makefile.am Replace netievent lock-free queue with simple locked queue 2022-03-04 13:49:51 +01:00
managers.c Replace netievent lock-free queue with simple locked queue 2022-03-04 13:49:51 +01:00
md.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
mem.c Use detected cache line size 2022-01-27 13:02:23 +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 Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
mutexblock.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
net.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
netaddr.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
netmgr_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
netscope.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
nonce.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
openssl_shim.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
openssl_shim.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
os.c Use detected cache line size 2022-01-27 13:02:23 +01: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
pool.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
portset.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
quota.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
radix.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
random.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
ratelimiter.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
regex.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
region.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
resource.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
result.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
rwlock.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +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
siphash.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
sockaddr.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
stats.c Assert if statistics counter underflows in the developer mode 2022-02-10 17:18:09 +01:00
stdio.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
stdtime.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
string.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
symtab.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
syslog.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
task.c Replace netievent lock-free queue with simple locked queue 2022-03-04 13:49:51 +01:00
task_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
taskpool.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
thread.c Remove unused functions from isc_thread API 2022-02-09 17:22:06 +01:00
time.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
timer.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
timer_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
tls.c Set the ephemeral certificate's "not before" a short time in the past 2022-01-25 09:09:35 +00:00
tls_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
tm.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
trampoline.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
trampoline_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
url.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
utf8.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00