v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
atomic-utils.h File Reference
#include <limits.h>
#include <atomic>
#include <type_traits>
#include "src/base/atomicops.h"
#include "src/base/macros.h"
#include "src/base/strong-alias.h"
Include dependency graph for atomic-utils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  v8::base::AtomicValue< T >
 
struct  v8::base::AtomicValue< T >::cast_helper< S >
 
struct  v8::base::AtomicValue< T >::cast_helper< S * >
 
class  v8::base::AsAtomicImpl< TAtomicStorageType >
 
struct  v8::base::AsAtomicImpl< TAtomicStorageType >::cast_helper< U >
 
struct  v8::base::AsAtomicImpl< TAtomicStorageType >::cast_helper< U * >
 
struct  v8::base::AsAtomicImpl< TAtomicStorageType >::cast_helper< base::StrongAlias< T, U > >
 
struct  v8::base::AtomicTypeFromByteWidth< Width >
 
struct  v8::base::AtomicTypeFromByteWidth< 1 >
 
struct  v8::base::AtomicTypeFromByteWidth< 2 >
 
struct  v8::base::AtomicTypeFromByteWidth< 4 >
 
class  v8::base::AsAtomicPointerImpl< TAtomicStorageType >
 

Namespaces

namespace  v8
 
namespace  v8::base
 

Typedefs

using v8::base::AsAtomic8 = AsAtomicImpl<base::Atomic8>
 
using v8::base::AsAtomic16 = AsAtomicImpl<base::Atomic16>
 
using v8::base::AsAtomic32 = AsAtomicImpl<base::Atomic32>
 
using v8::base::AsAtomicWord = AsAtomicImpl<base::AtomicWord>
 
using v8::base::AsAtomicPointer = AsAtomicPointerImpl<base::AtomicWord>
 

Functions

template<typename T >
requires std::is_unsigned<T>::value
void v8::base::CheckedIncrement (std::atomic< T > *number, T amount, std::memory_order order=std::memory_order_seq_cst)
 
template<typename T >
requires std::is_unsigned<T>::value
void v8::base::CheckedDecrement (std::atomic< T > *number, T amount, std::memory_order order=std::memory_order_seq_cst)
 
template<typename T >
V8_INLINE std::atomic< T > * v8::base::AsAtomicPtr (T *t)
 
template<typename T >
V8_INLINE const std::atomic< T > * v8::base::AsAtomicPtr (const T *t)