File tree Expand file tree Collapse file tree 1 file changed +6
-1
lines changed Expand file tree Collapse file tree 1 file changed +6
-1
lines changed Original file line number Diff line number Diff line change @@ -580,6 +580,12 @@ void RemoteQueue::close()
580580 // (unless StopRequest has timed out) all downstreams have closed all
581581 // queues.
582582
583+ // `close()` might be called multiple times
584+ if (!d_self.isValid ()) {
585+ return ; // RETURN
586+ }
587+ d_self.invalidate ();
588+
583589 size_t numMessages = erasePendingMessages (d_pendingMessages.end ());
584590
585591 BALL_LOG_INFO << d_state_p->uri () << " : erased all " << numMessages
@@ -588,7 +594,6 @@ void RemoteQueue::close()
588594
589595 BSLS_ASSERT_SAFE (d_pendingMessages.size () == 0 );
590596
591- d_self.invalidate ();
592597 if (d_pendingMessagesTimerEventHandle) {
593598 scheduler ()->cancelEventAndWait (&d_pendingMessagesTimerEventHandle);
594599 // 'expirePendingMessagesDispatched' does not restart timer if
You can’t perform that action at this time.
0 commit comments