mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 15:05:23 +00:00
Remove the explicit call_rcu thread creating and destruction
The free_all_cpu_call_rcu_data() call can consume hundreds of milliseconds on shutdown. Don't try to be smart and let the RCU library handle this internally.
This commit is contained in:
@@ -434,8 +434,6 @@ isc_loopmgr_run(isc_loopmgr_t *loopmgr) {
|
|||||||
*/
|
*/
|
||||||
ignore_signal(SIGPIPE, SIG_IGN);
|
ignore_signal(SIGPIPE, SIG_IGN);
|
||||||
|
|
||||||
bool free_call_rcu_data = !create_all_cpu_call_rcu_data(0);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The thread 0 is this one.
|
* The thread 0 is this one.
|
||||||
*/
|
*/
|
||||||
@@ -450,12 +448,6 @@ isc_loopmgr_run(isc_loopmgr_t *loopmgr) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
isc_thread_main(loop_thread, &loopmgr->loops[0]);
|
isc_thread_main(loop_thread, &loopmgr->loops[0]);
|
||||||
|
|
||||||
rcu_barrier();
|
|
||||||
|
|
||||||
if (free_call_rcu_data) {
|
|
||||||
free_all_cpu_call_rcu_data();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Reference in New Issue
Block a user