compiling code with mutex in service fn

This commit is contained in:
Thilo Behnke
2022-05-13 15:12:30 +02:00
parent c0d72a631c
commit 575525af87
2 changed files with 11 additions and 9 deletions

View File

@@ -9,7 +9,7 @@ pub mod event {
pub msg: String
}
pub trait EventWriterImpl {
pub trait EventWriterImpl : Send + Sync {
fn write(&mut self, event: Event) -> Result<(), ()>;
}

View File

@@ -19,15 +19,17 @@ impl HttpServer {
HttpServer {addr, port, event_writer}
}
pub async fn run(&self) -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
let mut event_writer = Arc::clone(&self.event_writer);
let make_svc = make_service_fn(|socket: &AddrStream| async {
Ok::<_, Infallible>(service_fn(move |req: Request<Body>| {
async move {
pub async fn run(self) -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
let make_svc = make_service_fn(|socket: &AddrStream| {
let mut event_writer = Arc::clone(&self.event_writer);
async move {
Ok::<_, Infallible>(service_fn(move |req: Request<Body>| {
let mut event_writer = Arc::clone(&event_writer);
handle_request(&event_writer, req).await
}
}))
async move {
return handle_request(&event_writer, req).await;
}
}))
}
});
let host = (self.addr, self.port).into();