From b2b6c3537dae39b735a62f8790faab8a5ecaeb1c Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sun, 7 Mar 2021 10:55:35 +0800 Subject: [PATCH] crimson/osd: no need to clear watchers beforehand as long as we don't yield, we can assume the atomicity. Signed-off-by: Kefu Chai --- src/crimson/osd/watch.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/crimson/osd/watch.cc b/src/crimson/osd/watch.cc index 789d0fd346b9..bcf535ab1c63 100644 --- a/src/crimson/osd/watch.cc +++ b/src/crimson/osd/watch.cc @@ -198,12 +198,11 @@ void Notify::do_timeout() if (complete) { return; } - decltype(watchers) timedout_watchers; - std::swap(watchers, timedout_watchers); - for (auto& watcher : timedout_watchers) { + for (auto& watcher : watchers) { watcher->cancel_notify(ninfo.notify_id); } - std::ignore = maybe_send_completion(std::move(timedout_watchers)); + std::ignore = maybe_send_completion(std::move(watchers)); + watchers.clear(); } } // namespace crimson::osd -- 2.47.3