From 324145b70251ad052ece68bd00a727c8683ef48a Mon Sep 17 00:00:00 2001 From: Haomai Wang Date: Tue, 1 Mar 2016 01:42:50 +0800 Subject: [PATCH] Event: complete all pending events Fix #14925 Signed-off-by: Haomai Wang --- src/msg/async/Event.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/msg/async/Event.cc b/src/msg/async/Event.cc index adc266e40982f..54218e75372fe 100644 --- a/src/msg/async/Event.cc +++ b/src/msg/async/Event.cc @@ -116,7 +116,17 @@ int EventCenter::init(int n) EventCenter::~EventCenter() { - assert(external_events.empty() && time_events.empty()); + { + Mutex::Locker l(external_lock); + while (!external_events.empty()) { + EventCallbackRef e = external_events.front(); + if (e) + e->do_request(0); + external_events.pop_front(); + } + } + assert(time_events.empty()); + if (notify_receive_fd >= 0) { delete_file_event(notify_receive_fd, EVENT_READABLE); ::close(notify_receive_fd); -- 2.39.5