From: Haomai Wang Date: Mon, 29 Feb 2016 17:42:50 +0000 (+0800) Subject: Event: complete all pending events X-Git-Tag: v10.1.0~271^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=324145b70251ad052ece68bd00a727c8683ef48a;p=ceph.git Event: complete all pending events Fix #14925 Signed-off-by: Haomai Wang --- diff --git a/src/msg/async/Event.cc b/src/msg/async/Event.cc index adc266e40982..54218e75372f 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);