mirror of
https://github.com/servo/servo.git
synced 2025-09-29 16:19:14 +01:00
net: clean shutdown of the async runtime (#38425)
The previous use of a static variable for the runtime prevented it from shutting down cleanly, because shutdown requires dropping or taking ownership of it. This PR switches the static variable to a handle only, and introduces a new trait to pass a handle to the async runtime to the constellation, where it can be shut-down along with other components and help reduce our count of still running threads after shutdown. Testing: manual testing, and covered by unit-test in net, and wpt tests. Fixes: part of - https://github.com/servo/servo/issues/30849 --------- Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
This commit is contained in:
parent
7ad32f944f
commit
77ff351cde
11 changed files with 132 additions and 49 deletions
|
@ -21,7 +21,7 @@ use rustls::{ClientConfig, RootCertStore};
|
|||
use rustls_pki_types::{CertificateDer, ServerName, UnixTime};
|
||||
use tower_service::Service;
|
||||
|
||||
use crate::async_runtime::HANDLE;
|
||||
use crate::async_runtime::spawn_task;
|
||||
use crate::hosts::replace_host;
|
||||
|
||||
pub const BUF_SIZE: usize = 32768;
|
||||
|
@ -165,7 +165,7 @@ where
|
|||
F: Future<Output = ()> + 'static + std::marker::Send,
|
||||
{
|
||||
fn execute(&self, fut: F) {
|
||||
HANDLE.spawn(fut);
|
||||
spawn_task(fut);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue