diff options
Diffstat (limited to 'deps/v8/src/base/atomic-utils.h')
-rw-r--r-- | deps/v8/src/base/atomic-utils.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/deps/v8/src/base/atomic-utils.h b/deps/v8/src/base/atomic-utils.h index d81c537e57..90681b8a35 100644 --- a/deps/v8/src/base/atomic-utils.h +++ b/deps/v8/src/base/atomic-utils.h @@ -377,6 +377,22 @@ class AtomicElement { T value_; }; +template <typename T, + typename = typename std::enable_if<std::is_unsigned<T>::value>::type> +inline void CheckedIncrement(std::atomic<T>* number, T amount) { + const T old = number->fetch_add(amount); + DCHECK_GE(old + amount, old); + USE(old); +} + +template <typename T, + typename = typename std::enable_if<std::is_unsigned<T>::value>::type> +inline void CheckedDecrement(std::atomic<T>* number, T amount) { + const T old = number->fetch_sub(amount); + DCHECK_GE(old, amount); + USE(old); +} + } // namespace base } // namespace v8 |