Kill task when channel closed

This commit is contained in:
Silas Bartha 2024-09-09 21:29:49 -04:00
parent 85751864c0
commit a5e8a554b5
Signed by: soaos
GPG Key ID: 9BD3DCC0D56A09B2

View File

@ -3,7 +3,7 @@ use std::{
sync::Arc, sync::Arc,
}; };
use async_channel::{Receiver, TryRecvError}; use async_channel::{Receiver, SendError, TryRecvError, TrySendError};
use bevy::{ use bevy::{
asset::{io::Reader, AssetLoader, AsyncReadExt, LoadContext}, asset::{io::Reader, AssetLoader, AsyncReadExt, LoadContext},
audio::Source, audio::Source,
@ -77,8 +77,8 @@ impl MidiDecoder {
while !sequencer.end_of_sequence() { while !sequencer.end_of_sequence() {
sequencer.render(&mut left, &mut right); sequencer.render(&mut left, &mut right);
for value in left.iter().interleave(right.iter()) { for value in left.iter().interleave(right.iter()) {
if let Err(e) = tx.send(*value).await { if let Err(_) = tx.send(*value).await {
error!("{e}"); return;
}; };
} }
} }