bound the event channel to prevent unbounded RSS growth
This commit is contained in:
parent
0a7fd0c26b
commit
21682acfae
2 changed files with 7 additions and 7 deletions
|
|
@ -438,7 +438,7 @@ pub enum Message {
|
||||||
TabNext,
|
TabNext,
|
||||||
TabPrev,
|
TabPrev,
|
||||||
TermEvent(pane_grid::Pane, segmented_button::Entity, TermEvent),
|
TermEvent(pane_grid::Pane, segmented_button::Entity, TermEvent),
|
||||||
TermEventTx(mpsc::UnboundedSender<(pane_grid::Pane, segmented_button::Entity, TermEvent)>),
|
TermEventTx(mpsc::Sender<(pane_grid::Pane, segmented_button::Entity, TermEvent)>),
|
||||||
ToggleFullscreen,
|
ToggleFullscreen,
|
||||||
ToggleContextPage(ContextPage),
|
ToggleContextPage(ContextPage),
|
||||||
UpdateDefaultProfile((bool, ProfileId)),
|
UpdateDefaultProfile((bool, ProfileId)),
|
||||||
|
|
@ -503,7 +503,7 @@ pub struct App {
|
||||||
find_search_id: widget::Id,
|
find_search_id: widget::Id,
|
||||||
find_search_value: String,
|
find_search_value: String,
|
||||||
term_event_tx_opt:
|
term_event_tx_opt:
|
||||||
Option<mpsc::UnboundedSender<(pane_grid::Pane, segmented_button::Entity, TermEvent)>>,
|
Option<mpsc::Sender<(pane_grid::Pane, segmented_button::Entity, TermEvent)>>,
|
||||||
startup_options: Option<tty::Options>,
|
startup_options: Option<tty::Options>,
|
||||||
term_config: term::Config,
|
term_config: term::Config,
|
||||||
color_scheme_errors: Vec<String>,
|
color_scheme_errors: Vec<String>,
|
||||||
|
|
@ -3623,7 +3623,7 @@ impl Application for App {
|
||||||
stream::channel(
|
stream::channel(
|
||||||
100,
|
100,
|
||||||
|mut output: iced::futures::channel::mpsc::Sender<Message>| async move {
|
|mut output: iced::futures::channel::mpsc::Sender<Message>| async move {
|
||||||
let (event_tx, mut event_rx) = mpsc::unbounded_channel();
|
let (event_tx, mut event_rx) = mpsc::channel(1024);
|
||||||
output.send(Message::TermEventTx(event_tx)).await.unwrap();
|
output.send(Message::TermEventTx(event_tx)).await.unwrap();
|
||||||
|
|
||||||
while let Some((pane, entity, event)) = event_rx.recv().await {
|
while let Some((pane, entity, event)) = event_rx.recv().await {
|
||||||
|
|
|
||||||
|
|
@ -99,13 +99,13 @@ impl From<Size> for WindowSize {
|
||||||
pub struct EventProxy(
|
pub struct EventProxy(
|
||||||
pane_grid::Pane,
|
pane_grid::Pane,
|
||||||
segmented_button::Entity,
|
segmented_button::Entity,
|
||||||
mpsc::UnboundedSender<(pane_grid::Pane, segmented_button::Entity, Event)>,
|
mpsc::Sender<(pane_grid::Pane, segmented_button::Entity, Event)>,
|
||||||
);
|
);
|
||||||
|
|
||||||
impl EventListener for EventProxy {
|
impl EventListener for EventProxy {
|
||||||
fn send_event(&self, event: Event) {
|
fn send_event(&self, event: Event) {
|
||||||
//TODO: handle error
|
//TODO: handle error
|
||||||
let _ = self.2.send((self.0, self.1, event));
|
let _ = self.2.blocking_send((self.0, self.1, event));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -270,7 +270,7 @@ impl Terminal {
|
||||||
pub fn new(
|
pub fn new(
|
||||||
pane: pane_grid::Pane,
|
pane: pane_grid::Pane,
|
||||||
entity: segmented_button::Entity,
|
entity: segmented_button::Entity,
|
||||||
event_tx: mpsc::UnboundedSender<(pane_grid::Pane, segmented_button::Entity, Event)>,
|
event_tx: mpsc::Sender<(pane_grid::Pane, segmented_button::Entity, Event)>,
|
||||||
config: Config,
|
config: Config,
|
||||||
options: Options,
|
options: Options,
|
||||||
app_config: &AppConfig,
|
app_config: &AppConfig,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue