diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-02-23 23:37:10 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-02-23 23:37:10 +0000 |
commit | 99ce312eef544a4274abe06021a64abb1cd17517 (patch) | |
tree | c73ba737e4bfd877802e523127231517b7cb795a /searchcore | |
parent | 2d1f4ba77c803a7bdb9f4a2f0bd31b6208011f82 (diff) |
Obey stop sign
Diffstat (limited to 'searchcore')
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/bucketmovejobv2.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/bucketmovejobv2.cpp b/searchcore/src/vespa/searchcore/proton/server/bucketmovejobv2.cpp index 03c5c1401a0..93be0ee0591 100644 --- a/searchcore/src/vespa/searchcore/proton/server/bucketmovejobv2.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/bucketmovejobv2.cpp @@ -184,9 +184,7 @@ public: } void fail(const Bucket &bucket) override { - _job._master.execute(makeLambdaTask([this, bucketId=bucket.getBucketId()]() { - _job.failOperation(bucketId); - })); + _job.failOperation(bucket.getBucketId()); } private: @@ -199,7 +197,11 @@ private: void BucketMoveJobV2::failOperation(BucketId bucketId) { IncOnDestruct countGuard(_executedCount); - considerBucket(_ready.meta_store()->getBucketDB().takeGuard(), bucketId); + if (_stopped.load(std::memory_order_relaxed)) return; + _master.execute(makeLambdaTask([this, bucketId]() { + if (_stopped.load(std::memory_order_relaxed)) return; + considerBucket(_ready.meta_store()->getBucketDB().takeGuard(), bucketId); + })); } void @@ -224,6 +226,7 @@ BucketMoveJobV2::prepareMove(BucketMoverSP mover, std::vector<MoveKey> keys, IDe if (_stopped.load(std::memory_order_relaxed)) return; auto moveOps = mover->createMoveOperations(keys); _master.execute(makeLambdaTask([this, mover=std::move(mover), moveOps=std::move(moveOps), onDone=std::move(onDone)]() mutable { + if (_stopped.load(std::memory_order_relaxed)) return; completeMove(std::move(mover), std::move(moveOps), std::move(onDone)); })); } |