diff --git a/src/ezhttp/mod.rs b/src/ezhttp/mod.rs index 97cab8f..97e523d 100644 --- a/src/ezhttp/mod.rs +++ b/src/ezhttp/mod.rs @@ -10,6 +10,7 @@ use std::{ use tokio::io::AsyncReadExt; use rusty_pool::ThreadPool; use tokio::net::{TcpListener, TcpStream}; +use tokio::runtime::Runtime; use tokio_io_timeout::TimeoutStream; pub mod error; @@ -104,7 +105,7 @@ where let now_server = Arc::clone(&server); - threadpool.spawn((&handler)(now_server, sock)); + threadpool.spawn_await((&handler)(now_server, sock)); } threadpool.join(); @@ -140,7 +141,7 @@ where let now_server = Arc::clone(&server); - tokio::spawn((&handler)(now_server, sock)); + Runtime::new().unwrap().spawn((&handler)(now_server, sock)); } server.on_close().await; diff --git a/src/ezhttp/starter.rs b/src/ezhttp/starter.rs index 120e2e7..04703aa 100644 --- a/src/ezhttp/starter.rs +++ b/src/ezhttp/starter.rs @@ -1,4 +1,4 @@ -use tokio::task::JoinHandle; +use tokio::{runtime::Runtime, task::JoinHandle}; use super::{ handler_connection, start_server_new_thread, start_server_sync, start_server_with_threadpool, Handler, HttpServer @@ -138,7 +138,7 @@ impl HttpServerStarter { let running_clone = running.clone(); let thread = if self.threads == 0 { - tokio::spawn(async move { + Runtime::new().unwrap().spawn(async move { start_server_new_thread( self.http_server, &self.host, @@ -149,7 +149,7 @@ impl HttpServerStarter { .expect("http server error"); }) } else if self.threads == 1 { - tokio::spawn(async move { + Runtime::new().unwrap().spawn(async move { start_server_sync( self.http_server, &self.host, @@ -160,7 +160,7 @@ impl HttpServerStarter { .expect("http server error"); }) } else { - tokio::spawn(async move { + Runtime::new().unwrap().spawn(async move { start_server_with_threadpool( self.http_server, &self.host,