Skip to content

Commit 51bb43f

Browse files
committed
Prevent channel from growing unconditionally when display is not updated
1 parent db43f25 commit 51bb43f

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ fn main() {
7575

7676
let (frame_tx, frame_rx) = flume::unbounded();
7777
let (window_tx, window_rx) = flume::unbounded();
78-
let (spectrum_tx, spectrum_rx) = flume::unbounded();
78+
let (spectrum_tx, spectrum_rx) = flume::bounded(1000);
7979
let (config_tx, config_rx) = flume::unbounded();
8080
let (result_tx, result_rx) = flume::unbounded();
8181

src/spectrum.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::config::{
44
use biquad::{
55
Biquad, Coefficients, DirectForm2Transposed, Hertz, ToHertz, Type, Q_BUTTERWORTH_F32,
66
};
7-
use flume::{Receiver, Sender};
7+
use flume::{Receiver, Sender, TrySendError};
88
use image::{ImageBuffer, Pixel, Rgb};
99
use nalgebra::{Dyn, OMatrix, U3, U4};
1010
use rayon::prelude::*;
@@ -43,7 +43,9 @@ impl SpectrumCalculator {
4343
while let Ok(window) = self.window_rx.recv() {
4444
let spectrum = Self::process_window(&window);
4545

46-
self.spectrum_tx.send(spectrum).unwrap();
46+
if let Err(TrySendError::Disconnected(_)) = self.spectrum_tx.try_send(spectrum) {
47+
break;
48+
}
4749
}
4850
log::debug!("SpectrumCalculator thread exiting");
4951
}

0 commit comments

Comments
 (0)