Fix #14925
Signed-off-by: Haomai Wang <haomai@xsky.com>
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);