Fix BridgeEpollController to handles EAGAIN correctly
When reading/writing proxy FD, if it returns EAGAIN, BridgeEpollController updates epoll entries to observe specific FD events. Before updating epoll entries, BridgeEpollController checks if it really needs to update by comparing |state_| and |last_state_|. |last_state_| has not been updated correctly so it resulted in wrong epoll settings and keeps blocking the event loop. Bug: 134104939 Test: atest libappfuse_test Change-Id: I1c4a0164c1c016baf24ecfd523476ced981d3b28
This commit is contained in:
parent
cc18faf4d6
commit
ca0d4ffbe3
1 changed files with 1 additions and 0 deletions
|
@ -86,6 +86,7 @@ class FuseBridgeEntry {
|
|||
const bool proxy_read_ready = last_proxy_events_.events & EPOLLIN;
|
||||
const bool proxy_write_ready = last_proxy_events_.events & EPOLLOUT;
|
||||
|
||||
last_state_ = state_;
|
||||
last_device_events_.events = 0;
|
||||
last_proxy_events_.events = 0;
|
||||
|
||||
|
|
Loading…
Reference in a new issue