Synchronization

## Classes

class | tbb::null_mutex
| A mutex which does nothing. More...
class | tbb::null_rw_mutex
| A rw mutex which does nothing. More...
class | tbb::queuing_mutex
| Queuing mutex with local-only spinning. More...
class | tbb::queuing_rw_mutex
| Queuing reader-writer mutex with local-only spinning. More...
class | tbb::spin_mutex
| A lock that occupies a single byte. More...
class | tbb::spin_rw_mutex_v3
| Fast, unfair, spinning reader-writer lock with backoff and writer-preference. More...

## Macros

#define | __TBB_DECL_ATOMIC(T)
| Primary template for atomic. More...

## Typedefs

typedef interface7::internal::padded_mutex< spin_mutex, false > | tbb::speculative_spin_mutex
| A cross-platform spin mutex with speculative lock acquisition. More...
typedef interface7::internal::padded_mutex< tbb::spin_rw_mutex, true > | tbb::interface8::speculative_spin_rw_mutex
| A cross-platform spin reader/writer mutex with speculative lock acquisition. More...

## Detailed Description

## Macro Definition Documentation

## __TBB_DECL_ATOMIC

#define __TBB_DECL_ATOMIC | ( |  | T | ) |

Value:
template<> struct __TBB_DEPRECATED_VERBOSE_MSG("tbb::atomic is deprecated, use std::atomic") \
atomic<T>: internal::atomic_impl_with_arithmetic<T,T,char> { \
atomic() = default; \
constexpr atomic(T arg): internal::atomic_impl_with_arithmetic<T,T,char>(arg) {} \
constexpr atomic<T>(const atomic<T>& rhs): \
internal::atomic_impl_with_arithmetic<T,T,char>(rhs) {} \
\
T operator=( T rhs ) {return store_with_release(rhs);} \
atomic<T>& operator=( const atomic<T>& rhs ) {store_with_release(rhs); return *this;} \
};

Primary template for atomic.

See the Reference for details.

Definition at line 432 of file atomic.h.

## Typedef Documentation

## speculative_spin_mutex

typedef interface7::internal::padded_mutex<spin_mutex,false> tbb::speculative_spin_mutex

A cross-platform spin mutex with speculative lock acquisition.

On platforms with proper HW support, this lock may speculatively execute its critical sections, using HW mechanisms to detect real data races and ensure atomicity of the critical sections. In particular, it uses Intel(R) Transactional Synchronization Extensions (Intel(R) TSX). Without such HW support, it behaves like a spin_mutex. It should be used for locking short critical sections where the lock is contended but the data it protects are not. If zero-initialized, the mutex is considered unheld.

Definition at line 205 of file spin_mutex.h.

## speculative_spin_rw_mutex

typedef interface7::internal::padded_mutex<tbb::spin_rw_mutex,true> tbb::interface8::speculative_spin_rw_mutex

A cross-platform spin reader/writer mutex with speculative lock acquisition.

On platforms with proper HW support, this lock may speculatively execute its critical sections, using HW mechanisms to detect real data races and ensure atomicity of the critical sections. In particular, it uses Intel(R) Transactional Synchronization Extensions (Intel(R) TSX). Without such HW support, it behaves like a spin_rw_mutex. It should be used for locking short critical sections where the lock is contended but the data it protects are not.

Definition at line 245 of file spin_rw_mutex.h.

internal
Definition: _flow_graph_async_msg_impl.h:24
tbb
The graph class.
Definition: serial/tbb/parallel_for.h:46
__TBB_DEPRECATED_VERBOSE_MSG
#define __TBB_DEPRECATED_VERBOSE_MSG(msg)
Definition: tbb_config.h:649

Copyright © 2005-2020 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others.