use thread pool to process connections

This commit is contained in:
Christoph J. Scherr 2024-01-19 09:36:17 +01:00
parent 12a60eb189
commit a11618add4
Signed by: cscherrNT
GPG Key ID: 8E2B45BC51A27EA7
1 changed files with 11 additions and 4 deletions

View File

@ -43,20 +43,27 @@ impl Server {
loop { loop {
self.work.poll(&mut self.events, self.timeout)?; self.work.poll(&mut self.events, self.timeout)?;
for event in self.events.iter() { for event in self.events.iter() {
// self.pool.execute(|| {
let result = self.handle_event(event); let result = self.handle_event(event);
if let Err(err) = result { if let Err(err) = result {
error!("Error while handling server event {:?}: {:?}", event, err); error!("Error while handling server event {:?}: {:?}", event, err);
} }
// });
} }
} }
} }
fn handle_event(&self, event: &Event) -> Result<()> { fn handle_event(&self, event: &Event) -> Result<()> {
dbg!(event); dbg!(event);
let _connection = self.server.accept()?; let connection = match self.server.accept() {
Ok(c) => c,
Err(err) => {
error!("error while handling connection: {:?}", err);
return Err(err.into());
}
};
self.pool.execute(move|| {
dbg!(connection);
info!("received a connection!"); info!("received a connection!");
});
Ok(()) Ok(())
} }
} }