| Index: runtime/bin/eventhandler_macos.cc | 
| diff --git a/runtime/bin/eventhandler_macos.cc b/runtime/bin/eventhandler_macos.cc | 
| index fac8941cc34311934b2e56a04e82ddc22ca97946..c884e587557fdf0e6b765b3b0bcc33bed2c108bd 100644 | 
| --- a/runtime/bin/eventhandler_macos.cc | 
| +++ b/runtime/bin/eventhandler_macos.cc | 
| @@ -227,9 +227,13 @@ void EventHandlerImplementation::HandleInterruptFd() { | 
| socket_map_.Remove(GetHashmapKeyFromFd(fd), GetHashmapHashFromFd(fd)); | 
| delete sd; | 
| } else { | 
| -        // Setup events to wait for. | 
| -        sd->SetPortAndMask(msg.dart_port, msg.data); | 
| -        UpdateKqueue(kqueue_fd_, sd); | 
| +        if ((msg.data & (1 << kInEvent)) != 0 && sd->IsClosedRead()) { | 
| +          DartUtils::PostInt32(msg.dart_port, 1 << kCloseEvent); | 
| +        } else { | 
| +          // Setup events to wait for. | 
| +          sd->SetPortAndMask(msg.dart_port, msg.data); | 
| +          UpdateKqueue(kqueue_fd_, sd); | 
| +        } | 
| } | 
| } | 
| } | 
|  |