2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 22:15:20 +00:00

isc_pool and isc_taskpool have gone; more preening

Tony Finch
2022-04-07 11:20:57 +01:00
parent e5cec4d503
commit acd4b1b329

@@ -53,16 +53,17 @@ Fixed-size array stack
## used by
* `isc/netmgr/netmgr`
* `isc/netmgr/netmgr` for object caches
## notes
Used as object caches
Ondrej: will be gone after the netmgr refactoring and replaced with per-thread object pools/lists
Locked.
## Ondřej's notes
Will be gone after the netmgr refactoring and replaced with per-thread object
pools/lists
# `isc/heap`
@@ -85,7 +86,10 @@ There's a min-heap in libuv, implemented as a binary tree. The
standard algorithms (as in `isc/heap`) use an array which should have
better performance.
Ondrej: The usage in isc_timer has been already removed in the loopmgr branch
## Ondřej's notes
The usage in isc_timer has been removed in the loopmgr branch
# `isc/ht`
@@ -142,25 +146,6 @@ There's work to do on `isc/ht`:
`dns/adb` was recently refactored, it used a custom hashtable before
# `isc/pool`
A mechanism for sharing a small pool of fungible objects among a large
number of objects that depend on them.
## used by
* `dns/zone` for sharing memory contexts
## notes
Single-threaded.
This is a bit different from the lock pools in `rbtdb`, because
`isc/pool` returns a random item from teh pool, whereas `rbtdb`
chooses `locknum` deterministically based on the node's hash value.
Ondrej: this is already gone on main
# `isc/radix`
Radix tree for IP address prefix matching
@@ -203,27 +188,11 @@ Ought to be unnecessary. Might be worth cleaning up as part of some
general parser refactoring (`isc/lex` could probably be made faster
using `re2c`).
Ondrej: Using [rage](http://www.colm.net/open-source/ragel/) is on my TODO list for too long...
## Ondřej's notes
# `isc/taskpool`
Using [ragel](http://www.colm.net/open-source/ragel/) is on my TODO list for
too long...
Like `isc/pool`, but specialized for tasks
## used by
* `dns/zone` for sharing tasks
## notes
Single-threaded.
Should probably be replaced by the more generic `isc/pool` (it looks
like that was the plan when `isc/pool` was added).
There appears to be a bug in `isc_taskpool_expand()` when it fails to
create a new task: the existing taskpool will be left empty.
Ondrej: this is already gone on main
# `isccc`