tbb::spin_rw_mutex_v3 Class Reference
[Synchronization]

Fast, unfair, spinning reader-writer lock with backoff and writer-preference. More...

#include <spin_rw_mutex.h>

List of all members.

Public Member Functions

 spin_rw_mutex_v3 ()
 Construct unacquired mutex.
 ~spin_rw_mutex_v3 ()
 Destructor asserts if the mutex is acquired, i.e. state is zero.
void lock ()
 Acquire writer lock.
bool try_lock ()
 Try acquiring writer lock (non-blocking).
void unlock ()
 Release lock.
void lock_read ()
 Acquire reader lock.
bool try_lock_read ()
 Try acquiring reader lock (non-blocking).

Static Public Attributes

static const bool is_rw_mutex = true
static const bool is_recursive_mutex = false
static const bool is_fair_mutex = false

Protected Types

typedef intptr_t state_t

Protected Attributes

state_t state
 State of lock.

Static Protected Attributes

static const state_t WRITER = 1
static const state_t WRITER_PENDING = 2
static const state_t READERS = ~(WRITER | WRITER_PENDING)
static const state_t ONE_READER = 4
static const state_t BUSY = WRITER | READERS

Classes

class  scoped_lock
 The scoped locking pattern. More...


Detailed Description

Fast, unfair, spinning reader-writer lock with backoff and writer-preference.


Member Function Documentation

bool tbb::spin_rw_mutex_v3::try_lock (  )  [inline]

Try acquiring writer lock (non-blocking).

Return true if lock acquired; false otherwise.

bool tbb::spin_rw_mutex_v3::try_lock_read (  )  [inline]

Try acquiring reader lock (non-blocking).

Return true if reader lock acquired; false otherwise.


Member Data Documentation

state_t tbb::spin_rw_mutex_v3::state [protected]

State of lock.

Bit 0 = writer is holding lock Bit 1 = request by a writer to acquire lock (hint to readers to wait) Bit 2..N = number of readers holding lock


The documentation for this class was generated from the following file:

Copyright © 2005-2013 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.