X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Fdmclock%2Fsupport%2Fsrc%2Frun_every.cc;h=cab414109a9dc6fcc648fff7873d432961d29cdb;hb=31f18b776d001752a193a7cec8bb49033c1a904c;hp=258baaa74c041bf3b6d0159b85c1135a82009fa5;hpb=40152f1e46a80b3405e5558a442ee632198dfd24;p=ceph.git diff --git a/ceph/src/dmclock/support/src/run_every.cc b/ceph/src/dmclock/support/src/run_every.cc index 258baaa74..cab414109 100644 --- a/ceph/src/dmclock/support/src/run_every.cc +++ b/ceph/src/dmclock/support/src/run_every.cc @@ -1,12 +1,10 @@ // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- // vim: ts=8 sw=2 smarttab /* - * Copyright (C) 2016 Red Hat Inc. + * Copyright (C) 2017 Red Hat Inc. */ -#include - #include "run_every.h" @@ -53,8 +51,17 @@ crimson::RunEvery& crimson::RunEvery::operator=(crimson::RunEvery&& other) crimson::RunEvery::~RunEvery() { - finishing = true; - cv.notify_all(); + join(); +} + + +void crimson::RunEvery::join() { + { + Guard l(mtx); + if (finishing) return; + finishing = true; + cv.notify_all(); + } thd.join(); }