[rust][async] Prevent hot loop on false Closed signal
Previously, it was possible for a hot-looping task to be created as a result of a stale PEER_CLOSED signal arriving for a new, still-open channel. This change prevents this by ensuring that the `PEER_CLOSED` signal gets reset and re-waited in the event that a read or write occurs without resulting in PEER_CLOSED. This change fixes the issue for zx::Fifo and zx::Channel, and a followup change will be opened for zx::Socket. Change-Id: I0220b084320158d20d624b75c4267b0f87e6687f
Showing
- garnet/public/rust/fuchsia-async/src/channel.rs 22 additions, 12 deletionsgarnet/public/rust/fuchsia-async/src/channel.rs
- garnet/public/rust/fuchsia-async/src/executor.rs 3 additions, 0 deletionsgarnet/public/rust/fuchsia-async/src/executor.rs
- garnet/public/rust/fuchsia-async/src/fifo.rs 10 additions, 6 deletionsgarnet/public/rust/fuchsia-async/src/fifo.rs
- garnet/public/rust/fuchsia-async/src/rwhandle.rs 90 additions, 71 deletionsgarnet/public/rust/fuchsia-async/src/rwhandle.rs
Loading
Please register or sign in to comment