Skip to content

Commit

Permalink
fix: do not panic on interrupt channel for watch
Browse files Browse the repository at this point in the history
  • Loading branch information
sabify committed Dec 19, 2024
1 parent f03212f commit f4a7125
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/command/watch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ use crate::{
use anyhow::Result;
use leptos_hot_reload::ViewMacros;
use std::sync::Arc;
use tokio::sync::broadcast::error::RecvError;
use tokio::try_join;

pub async fn watch(proj: &Arc<Project>) -> Result<()> {
Expand Down Expand Up @@ -49,7 +50,12 @@ pub async fn run_loop(proj: &Arc<Project>) -> Result<()> {
loop {
log::debug!("Watch waiting for changes");

int.recv().await.dot()?;
let int = int.recv().await;
// Do not terminate the execution of watch if the receiver lagged behind as it might be a slow receiver
// It happens when many files are modified in short period and it exceeds the channel capacity.
if matches!(int, Err(RecvError::Closed)) {
return Err(RecvError::Closed).dot();
}

if Interrupt::is_shutdown_requested().await {
log::debug!("Shutting down");
Expand Down

0 comments on commit f4a7125

Please sign in to comment.