mirror of
https://github.com/embassy-rs/embassy.git
synced 2025-09-28 04:40:39 +00:00
add separate tx waker
This commit is contained in:
parent
3b37c79331
commit
065071b467
@ -85,6 +85,7 @@ unsafe fn on_interrupt(r: Regs, s: &'static State) {
|
||||
|
||||
compiler_fence(Ordering::SeqCst);
|
||||
s.rx_waker.wake();
|
||||
s.tx_waker.wake();
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, PartialEq, Eq, Debug)]
|
||||
@ -592,7 +593,7 @@ async fn flush(info: &Info, state: &State) -> Result<(), Error> {
|
||||
|
||||
// future which completes when Transmission complete is detected
|
||||
let abort = poll_fn(move |cx| {
|
||||
state.rx_waker.register(cx.waker());
|
||||
state.tx_waker.register(cx.waker());
|
||||
|
||||
let sr = sr(r).read();
|
||||
if sr.tc() {
|
||||
@ -2019,6 +2020,7 @@ enum Kind {
|
||||
|
||||
struct State {
|
||||
rx_waker: AtomicWaker,
|
||||
tx_waker: AtomicWaker,
|
||||
tx_rx_refcount: AtomicU8,
|
||||
}
|
||||
|
||||
@ -2026,6 +2028,7 @@ impl State {
|
||||
const fn new() -> Self {
|
||||
Self {
|
||||
rx_waker: AtomicWaker::new(),
|
||||
tx_waker: AtomicWaker::new(),
|
||||
tx_rx_refcount: AtomicU8::new(0),
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user