| Index: runtime/bin/eventhandler_linux.cc
|
| diff --git a/runtime/bin/eventhandler_linux.cc b/runtime/bin/eventhandler_linux.cc
|
| index 79e991498d9d427b3fa16f271fd7b0be8a157f1e..c7e19695ca40e487ce935f63daf91743643693e6 100644
|
| --- a/runtime/bin/eventhandler_linux.cc
|
| +++ b/runtime/bin/eventhandler_linux.cc
|
| @@ -341,7 +341,10 @@ void EventHandlerImplementation::HandleEvents(struct epoll_event* events,
|
| } else {
|
| SocketData* sd = reinterpret_cast<SocketData*>(events[i].data.ptr);
|
| intptr_t event_mask = GetPollEvents(events[i].events, sd);
|
| - if (event_mask != 0) {
|
| + if (event_mask == 0) {
|
| + // Event not handled, re-add to epoll.
|
| + UpdateEpollInstance(epoll_fd_, sd);
|
| + } else {
|
| Dart_Port port = sd->port();
|
| ASSERT(port != 0);
|
| DartUtils::PostInt32(port, event_mask);
|
|
|