mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-31 14:35:26 +00:00
Remove isc_qsbr (we are using liburcu instead)
This commit breaks the qp-trie code.
This commit is contained in:
@@ -26,14 +26,12 @@
|
||||
#include <isc/magic.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/mutex.h>
|
||||
#include <isc/qsbr.h>
|
||||
#include <isc/refcount.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/signal.h>
|
||||
#include <isc/strerr.h>
|
||||
#include <isc/thread.h>
|
||||
#include <isc/tid.h>
|
||||
#include <isc/time.h>
|
||||
#include <isc/urcu.h>
|
||||
#include <isc/util.h>
|
||||
#include <isc/uv.h>
|
||||
@@ -151,7 +149,6 @@ destroy_cb(uv_async_t *handle) {
|
||||
uv_close(&loop->run_trigger, isc__job_close);
|
||||
uv_close(&loop->destroy_trigger, NULL);
|
||||
uv_close(&loop->pause_trigger, NULL);
|
||||
uv_close(&loop->wakeup_trigger, NULL);
|
||||
uv_close(&loop->quiescent, NULL);
|
||||
|
||||
uv_walk(&loop->loop, loop_walk_cb, (char *)"destroy_cb");
|
||||
@@ -162,8 +159,6 @@ shutdown_cb(uv_async_t *handle) {
|
||||
isc_loop_t *loop = uv_handle_get_data(handle);
|
||||
isc_loopmgr_t *loopmgr = loop->loopmgr;
|
||||
|
||||
loop->shuttingdown = true;
|
||||
|
||||
/* Make sure, we can't be called again */
|
||||
uv_close(&loop->shutdown_trigger, shutdown_trigger_close_cb);
|
||||
|
||||
@@ -185,12 +180,6 @@ shutdown_cb(uv_async_t *handle) {
|
||||
UV_RUNTIME_CHECK(uv_async_send, r);
|
||||
}
|
||||
|
||||
static void
|
||||
wakeup_cb(uv_async_t *handle) {
|
||||
/* we only woke up to make the loop take a spin */
|
||||
UNUSED(handle);
|
||||
}
|
||||
|
||||
static void
|
||||
loop_init(isc_loop_t *loop, isc_loopmgr_t *loopmgr, uint32_t tid) {
|
||||
*loop = (isc_loop_t){
|
||||
@@ -226,9 +215,6 @@ loop_init(isc_loop_t *loop, isc_loopmgr_t *loopmgr, uint32_t tid) {
|
||||
UV_RUNTIME_CHECK(uv_async_init, r);
|
||||
uv_handle_set_data(&loop->destroy_trigger, loop);
|
||||
|
||||
r = uv_async_init(&loop->loop, &loop->wakeup_trigger, wakeup_cb);
|
||||
UV_RUNTIME_CHECK(uv_async_init, r);
|
||||
|
||||
r = uv_prepare_init(&loop->loop, &loop->quiescent);
|
||||
UV_RUNTIME_CHECK(uv_prepare_init, r);
|
||||
uv_handle_set_data(&loop->quiescent, loop);
|
||||
@@ -245,7 +231,7 @@ loop_init(isc_loop_t *loop, isc_loopmgr_t *loopmgr, uint32_t tid) {
|
||||
|
||||
static void
|
||||
quiescent_cb(uv_prepare_t *handle) {
|
||||
isc__qsbr_quiescent_cb(handle);
|
||||
UNUSED(handle);
|
||||
|
||||
#if defined(RCU_QSBR)
|
||||
/* safe memory reclamation */
|
||||
@@ -340,7 +326,6 @@ isc_loopmgr_create(isc_mem_t *mctx, uint32_t nloops, isc_loopmgr_t **loopmgrp) {
|
||||
loopmgr = isc_mem_get(mctx, sizeof(*loopmgr));
|
||||
*loopmgr = (isc_loopmgr_t){
|
||||
.nloops = nloops,
|
||||
.qsbr = ISC_QSBR_INITIALIZER(nloops),
|
||||
};
|
||||
|
||||
isc_mem_attach(mctx, &loopmgr->mctx);
|
||||
@@ -465,22 +450,6 @@ isc_loopmgr_run(isc_loopmgr_t *loopmgr) {
|
||||
isc_thread_main(loop_thread, &loopmgr->loops[0]);
|
||||
}
|
||||
|
||||
void
|
||||
isc_loopmgr_wakeup(isc_loopmgr_t *loopmgr) {
|
||||
REQUIRE(VALID_LOOPMGR(loopmgr));
|
||||
|
||||
for (size_t i = 0; i < loopmgr->nloops; i++) {
|
||||
isc_loop_t *loop = &loopmgr->loops[i];
|
||||
|
||||
/* Skip current loop */
|
||||
if (i == isc_tid()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
uv_async_send(&loop->wakeup_trigger);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
isc_loopmgr_pause(isc_loopmgr_t *loopmgr) {
|
||||
REQUIRE(VALID_LOOPMGR(loopmgr));
|
||||
|
Reference in New Issue
Block a user