Skip to content

Commit 7a033e6

Browse files
committed
Fix issue with token creation
1 parent 0253683 commit 7a033e6

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

cachelib/allocator/CacheAllocator-inl.h

+9-5
Original file line numberDiff line numberDiff line change
@@ -1289,26 +1289,29 @@ CacheAllocator<CacheTrait>::findEviction(PoolId pid, ClassId cid) {
12891289
: toRecycle_;
12901290

12911291
const bool evictToNvmCache = shouldWriteToNvmCache(*candidate_);
1292-
if (evictToNvmCache)
1293-
token = nvmCache_->createPutToken(candidate_->getKey());
1292+
auto token_ = evictToNvmCache
1293+
? nvmCache_->createPutToken(candidate_->getKey())
1294+
: typename NvmCacheT::PutToken{};
12941295

1295-
if (evictToNvmCache && !token.isValid()) {
1296+
if (evictToNvmCache && !token_.isValid()) {
12961297
stats_.evictFailConcurrentFill.inc();
12971298
} else if (candidate_->markForEviction()) {
12981299
XDCHECK(candidate_->isMarkedForEviction());
12991300
// markForEviction to make sure no other thead is evicting the item
13001301
// nor holding a handle to that item
13011302
toRecycle = toRecycle_;
13021303
candidate = candidate_;
1304+
token = std::move(token_);
13031305

13041306
// Check if parent changed for chained items - if yes, we cannot
13051307
// remove the child from the mmContainer as we will not be evicting
13061308
// it. We could abort right here, but we need to cleanup in case
13071309
// unmarkForEviction() returns 0 - so just go through normal path.
13081310
if (!toRecycle_->isChainedItem() ||
13091311
&toRecycle->asChainedItem().getParentItem(compressor_) ==
1310-
candidate)
1312+
candidate) {
13111313
mmContainer.remove(itr);
1314+
}
13121315
return;
13131316
} else {
13141317
if (candidate_->hasChainedItem()) {
@@ -1324,8 +1327,9 @@ CacheAllocator<CacheTrait>::findEviction(PoolId pid, ClassId cid) {
13241327
}
13251328
});
13261329

1327-
if (!toRecycle)
1330+
if (!toRecycle) {
13281331
continue;
1332+
}
13291333

13301334
XDCHECK(toRecycle);
13311335
XDCHECK(candidate);

0 commit comments

Comments
 (0)