Lines Matching refs:flags
192 std::atomic<uint32_t> flags; member
298 static bool InCache(uint32_t flags) { return flags & kInCacheBit; } in InCache() argument
299 static bool HasUsage(uint32_t flags) { return flags & kUsageBit; } in HasUsage() argument
300 static uint32_t CountRefs(uint32_t flags) { return flags >> kRefsOffset; } in CountRefs() argument
388 uint32_t flags = handle.flags.load(std::memory_order_relaxed); in ~ClockCacheShard() local
389 if (InCache(flags) || CountRefs(flags) > 0) { in ~ClockCacheShard()
414 uint32_t flags = handle.flags.load(std::memory_order_relaxed); in ApplyToAllCacheEntries() local
415 if (InCache(flags)) { in ApplyToAllCacheEntries()
427 assert(!InCache(handle->flags) && CountRefs(handle->flags) == 0); in RecycleHandle()
452 uint32_t flags = handle->flags.load(std::memory_order_relaxed); in Ref() local
453 while (InCache(flags)) { in Ref()
456 if (handle->flags.compare_exchange_weak(flags, flags + kOneRef, in Ref()
459 if (CountRefs(flags) == 0) { in Ref()
473 handle->flags.fetch_or(kUsageBit, std::memory_order_relaxed); in Unref()
478 uint32_t flags = handle->flags.fetch_sub(kOneRef, std::memory_order_acq_rel); in Unref() local
479 assert(CountRefs(flags) > 0); in Unref()
480 if (CountRefs(flags) == 1) { in Unref()
485 if (!InCache(flags)) { in Unref()
499 uint32_t flags = in UnsetInCache() local
500 handle->flags.fetch_and(~kInCacheBit, std::memory_order_acq_rel); in UnsetInCache()
502 if (InCache(flags) && CountRefs(flags) == 0) { in UnsetInCache()
510 uint32_t flags = kInCacheBit; in TryEvict() local
511 if (handle->flags.compare_exchange_strong(flags, 0, std::memory_order_acquire, in TryEvict()
519 handle->flags.fetch_and(~kUsageBit, std::memory_order_relaxed); in TryEvict()
596 uint32_t flags = hold_reference ? kInCacheBit + kOneRef : kInCacheBit; in Insert() local
597 handle->flags.store(flags, std::memory_order_relaxed); in Insert()