Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(642)

Side by Side Diff: runtime/bin/eventhandler_android.cc

Issue 2231123002: Retry: Fixes memory leaks in the eventhandler (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Remove include of <map> Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « runtime/bin/eventhandler.h ('k') | runtime/bin/eventhandler_linux.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #if !defined(DART_IO_DISABLED) 5 #if !defined(DART_IO_DISABLED)
6 6
7 #include "platform/globals.h" 7 #include "platform/globals.h"
8 #if defined(TARGET_OS_ANDROID) 8 #if defined(TARGET_OS_ANDROID)
9 9
10 #include "bin/eventhandler.h" 10 #include "bin/eventhandler.h"
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 int status = NO_RETRY_EXPECTED(epoll_ctl(epoll_fd_, 111 int status = NO_RETRY_EXPECTED(epoll_ctl(epoll_fd_,
112 EPOLL_CTL_ADD, 112 EPOLL_CTL_ADD,
113 interrupt_fds_[0], 113 interrupt_fds_[0],
114 &event)); 114 &event));
115 if (status == -1) { 115 if (status == -1) {
116 FATAL("Failed adding interrupt fd to epoll instance"); 116 FATAL("Failed adding interrupt fd to epoll instance");
117 } 117 }
118 } 118 }
119 119
120 120
121 static void DeleteDescriptorInfo(void* info) {
122 DescriptorInfo* di = reinterpret_cast<DescriptorInfo*>(info);
123 di->Close();
124 delete di;
125 }
126
127
121 EventHandlerImplementation::~EventHandlerImplementation() { 128 EventHandlerImplementation::~EventHandlerImplementation() {
129 socket_map_.Clear(DeleteDescriptorInfo);
122 VOID_TEMP_FAILURE_RETRY(close(epoll_fd_)); 130 VOID_TEMP_FAILURE_RETRY(close(epoll_fd_));
123 VOID_TEMP_FAILURE_RETRY(close(interrupt_fds_[0])); 131 VOID_TEMP_FAILURE_RETRY(close(interrupt_fds_[0]));
124 VOID_TEMP_FAILURE_RETRY(close(interrupt_fds_[1])); 132 VOID_TEMP_FAILURE_RETRY(close(interrupt_fds_[1]));
125 } 133 }
126 134
127 135
128 void EventHandlerImplementation::UpdateEpollInstance(intptr_t old_mask, 136 void EventHandlerImplementation::UpdateEpollInstance(intptr_t old_mask,
129 DescriptorInfo *di) { 137 DescriptorInfo *di) {
130 intptr_t new_mask = di->Mask(); 138 intptr_t new_mask = di->Mask();
131 if ((old_mask != 0) && (new_mask == 0)) { 139 if ((old_mask != 0) && (new_mask == 0)) {
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 // The hashmap does not support keys with value 0. 438 // The hashmap does not support keys with value 0.
431 return dart::Utils::WordHash(fd + 1); 439 return dart::Utils::WordHash(fd + 1);
432 } 440 }
433 441
434 } // namespace bin 442 } // namespace bin
435 } // namespace dart 443 } // namespace dart
436 444
437 #endif // defined(TARGET_OS_ANDROID) 445 #endif // defined(TARGET_OS_ANDROID)
438 446
439 #endif // !defined(DART_IO_DISABLED) 447 #endif // !defined(DART_IO_DISABLED)
OLDNEW
« no previous file with comments | « runtime/bin/eventhandler.h ('k') | runtime/bin/eventhandler_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698