| Index: dart/runtime/bin/eventhandler_linux.cc
|
| diff --git a/dart/runtime/bin/eventhandler_linux.cc b/dart/runtime/bin/eventhandler_linux.cc
|
| index 7f81e3aa80e09e49cf60c6e6d5e623f6acdc0c45..d3ccb8d2133841612211e72d28f37e6e6dd38a11 100644
|
| --- a/dart/runtime/bin/eventhandler_linux.cc
|
| +++ b/dart/runtime/bin/eventhandler_linux.cc
|
| @@ -219,13 +219,18 @@ void EventHandlerImplementation::HandleInterruptFd() {
|
| if (sd->ReturnToken(msg[i].dart_port, count)) {
|
| AddToEpollInstance(epoll_fd_, sd);
|
| }
|
| - } else {
|
| - ASSERT_NO_COMMAND(msg[i].data);
|
| + } else if (IS_COMMAND(msg[i].data, kSetEventMaskCommand)) {
|
| + // `events` can only have kInEvent/kOutEvent flags set.
|
| + intptr_t events = msg[i].data & EVENT_MASK;
|
| + ASSERT(0 == (events & ~(1 << kInEvent) & ~(1 << kOutEvent)));
|
| +
|
| // Setup events to wait for.
|
| if (sd->AddPort(msg[i].dart_port)) {
|
| - sd->SetMask(msg[i].data);
|
| + sd->SetMask(events);
|
| AddToEpollInstance(epoll_fd_, sd);
|
| }
|
| + } else {
|
| + UNREACHABLE();
|
| }
|
| }
|
| }
|
|
|