Skip to content

Commit

Permalink
fix: initial delay should take care of shutdown signal (#7)
Browse files Browse the repository at this point in the history
Signed-off-by: tison <[email protected]>
  • Loading branch information
tisonkun authored Dec 11, 2024
1 parent 85671fc commit e871589
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
7 changes: 6 additions & 1 deletion fastimer/src/schedule/arbitrary.rs
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,12 @@ pub trait ArbitraryDelayActionExt: ArbitraryDelayAction {

if let Some(initial_delay) = initial_delay {
if initial_delay > Duration::ZERO {
make_delay.delay(initial_delay).await;
let is_shutdown = self.is_shutdown();
let delay = make_delay.delay(initial_delay);
if let Either::Left(()) = select(is_shutdown, delay).await {
self.teardown();
return;
}
}
}

Expand Down
14 changes: 12 additions & 2 deletions fastimer/src/schedule/simple.rs
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,12 @@ pub trait SimpleActionExt: SimpleAction {

if let Some(initial_delay) = initial_delay {
if initial_delay > Duration::ZERO {
make_delay.delay(initial_delay).await;
let is_shutdown = self.is_shutdown();
let delay = make_delay.delay(initial_delay);
if let Either::Left(()) = select(is_shutdown, delay).await {
self.teardown();
return;
};
}
}

Expand Down Expand Up @@ -159,7 +164,12 @@ pub trait SimpleActionExt: SimpleAction {
if let Some(initial_delay) = initial_delay {
if initial_delay > Duration::ZERO {
next = make_instant_from_now(initial_delay);
make_delay.delay_util(next).await;
let is_shutdown = self.is_shutdown();
let delay = make_delay.delay_util(next);
if let Either::Left(()) = select(is_shutdown, delay).await {
self.teardown();
return;
};
}
}

Expand Down

0 comments on commit e871589

Please sign in to comment.