mirror of
https://github.com/embassy-rs/embassy.git
synced 2024-11-23 23:32:30 +00:00
Only set callback once
This commit is contained in:
parent
0f95c72e78
commit
ff02ee1a22
@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## Unreleased
|
||||
|
||||
- Only set integrated-timers callbacks once per executor.
|
||||
|
||||
## 0.6.3 - 2024-11-12
|
||||
|
||||
- Building with the `nightly` feature now works with the Xtensa Rust compiler 1.82.
|
||||
|
@ -328,7 +328,7 @@ impl SyncExecutor {
|
||||
#[cfg(feature = "integrated-timers")]
|
||||
let alarm = unsafe { unwrap!(embassy_time_driver::allocate_alarm()) };
|
||||
|
||||
Self {
|
||||
let this = Self {
|
||||
run_queue: RunQueue::new(),
|
||||
pender,
|
||||
|
||||
@ -336,7 +336,12 @@ impl SyncExecutor {
|
||||
timer_queue: timer_queue::TimerQueue::new(),
|
||||
#[cfg(feature = "integrated-timers")]
|
||||
alarm,
|
||||
}
|
||||
};
|
||||
|
||||
#[cfg(feature = "integrated-timers")]
|
||||
embassy_time_driver::set_alarm_callback(this.alarm, Self::alarm_callback, &this as *const _ as *mut ());
|
||||
|
||||
this
|
||||
}
|
||||
|
||||
/// Enqueue a task in the task queue
|
||||
@ -374,9 +379,6 @@ impl SyncExecutor {
|
||||
///
|
||||
/// Same as [`Executor::poll`], plus you must only call this on the thread this executor was created.
|
||||
pub(crate) unsafe fn poll(&'static self) {
|
||||
#[cfg(feature = "integrated-timers")]
|
||||
embassy_time_driver::set_alarm_callback(self.alarm, Self::alarm_callback, self as *const _ as *mut ());
|
||||
|
||||
#[allow(clippy::never_loop)]
|
||||
loop {
|
||||
#[cfg(feature = "integrated-timers")]
|
||||
|
Loading…
Reference in New Issue
Block a user