Better joining of session tasks

This commit is contained in:
johannesd3 2021-04-12 22:54:32 +02:00
parent f158d230d1
commit 4c2fc61d64

View file

@ -10,7 +10,7 @@ use std::time::{SystemTime, UNIX_EPOCH};
use byteorder::{BigEndian, ByteOrder};
use bytes::Bytes;
use futures_core::TryStream;
use futures_util::{FutureExt, StreamExt, TryStreamExt};
use futures_util::{future, StreamExt, TryStreamExt};
use once_cell::sync::OnceCell;
use thiserror::Error;
use tokio::sync::mpsc;
@ -126,9 +126,14 @@ impl Session {
.forward(sink);
let receiver_task = DispatchTask(stream, session.weak());
let task =
futures_util::future::join(sender_task, receiver_task).map(|_| io::Result::<_>::Ok(()));
tokio::spawn(task);
tokio::spawn(async move {
let result = future::try_join(sender_task, receiver_task).await;
if let Err(e) = result {
error!("{}", e);
}
});
session
}