Index: runtime/bin/eventhandler_linux.cc |
diff --git a/runtime/bin/eventhandler_linux.cc b/runtime/bin/eventhandler_linux.cc |
index 59cbdcdfe3fb7fee4ed24434c80c77ca5e4cfdb0..bd61e80801878420fc2d86cd18d1171515a97501 100644 |
--- a/runtime/bin/eventhandler_linux.cc |
+++ b/runtime/bin/eventhandler_linux.cc |
@@ -127,7 +127,15 @@ EventHandlerImplementation::EventHandlerImplementation() |
} |
+static void DeleteDescriptorInfo(void* info) { |
+ DescriptorInfo* di = reinterpret_cast<DescriptorInfo*>(info); |
+ di->Close(); |
+ delete di; |
+} |
+ |
+ |
EventHandlerImplementation::~EventHandlerImplementation() { |
+ socket_map_.Clear(DeleteDescriptorInfo); |
VOID_TEMP_FAILURE_RETRY(close(epoll_fd_)); |
VOID_TEMP_FAILURE_RETRY(close(timer_fd_)); |
VOID_TEMP_FAILURE_RETRY(close(interrupt_fds_[0])); |