Commit 42452e30 authored by Maged Michael's avatar Maged Michael Committed by Facebook Github Bot

Add threshold for thread local retired objects

Summary: Change the threshold for pushing privately held retired object to the domain to a moderate constant instead of using the threshold for bulk reclamation which is too high for this purpose.

Reviewed By: djwatson

Differential Revision: D6665904

fbshipit-source-id: 0b090884843b0296a93af7994f7183f41c00000e
parent 881088fc
/* /*
* Copyright 2017 Facebook, Inc. * Copyright 2017-present Facebook, Inc.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
/* override-include-guard */ /* override-include-guard */
#ifndef HAZPTR_H #ifndef HAZPTR_H
#error "This should only be included by hazptr.h" #error "This should only be included by hazptr.h"
...@@ -41,6 +40,10 @@ ...@@ -41,6 +40,10 @@
#define HAZPTR_PRIV true #define HAZPTR_PRIV true
#endif #endif
#ifndef HAZPTR_PRIV_THRESHOLD
#define HAZPTR_PRIV_THRESHOLD 20
#endif
#ifndef HAZPTR_ONE_DOMAIN #ifndef HAZPTR_ONE_DOMAIN
#define HAZPTR_ONE_DOMAIN false #define HAZPTR_ONE_DOMAIN false
#endif #endif
...@@ -994,8 +997,7 @@ inline void hazptr_priv::push(hazptr_obj* obj) { ...@@ -994,8 +997,7 @@ inline void hazptr_priv::push(hazptr_obj* obj) {
head_ = obj; head_ = obj;
} }
tail_ = obj; tail_ = obj;
++rcount_; if (++rcount_ >= HAZPTR_PRIV_THRESHOLD) {
if (domain.reachedThreshold(rcount_)) {
pushAllToDomain(); pushAllToDomain();
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment