]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
AsyncConnection: move delete timers to cleanup handler
authorHaomai Wang <haomai@xsky.com>
Wed, 25 May 2016 01:36:35 +0000 (09:36 +0800)
committerHaomai Wang <haomai@xsky.com>
Wed, 29 Jun 2016 04:14:04 +0000 (12:14 +0800)
Signed-off-by: Haomai Wang <haomai@xsky.com>
src/msg/async/AsyncConnection.cc
src/msg/async/AsyncConnection.h

index 366bdc6f4df52929d8a6087d9643ec96a693615f..000b6bfeeb28dc823d1ea39499a044e4ea6df430 100644 (file)
@@ -2236,9 +2236,6 @@ void AsyncConnection::_stop()
     ::close(sd);
   }
   sd = -1;
-  for (set<uint64_t>::iterator it = register_time_events.begin();
-       it != register_time_events.end(); ++it)
-    center->delete_time_event(*it);
   // Make sure in-queue events will been processed
   center->dispatch_event_external(EventCallbackRef(new C_clean_handler(this)));
 
index f9867a572f3362d94afad463b8ec1087241f79da..aac571a04976268b4c455f891b5ea6972f1c7eee 100644 (file)
@@ -382,6 +382,10 @@ class AsyncConnection : public Connection {
       dispatch_queue->queue_reset(this);
   }
   void cleanup_handler() {
+    for (auto &&t : register_time_events)
+      center->delete_time_event(t);
+    register_time_events.clear();
+    center->delete_time_event(last_tick_id);
     delete read_handler;
     delete write_handler;
     delete wakeup_handler;