ATLAS Offline Software
Loading...
Searching...
No Matches
AthContainers_detail::strict_shared_lock< LOCKABLE > Class Template Reference

Lock object for taking out shared locks. More...

#include <threading.h>

Collaboration diagram for AthContainers_detail::strict_shared_lock< LOCKABLE >:

Public Types

typedef LOCKABLE lockable_type
 The underlying object type.

Public Member Functions

 strict_shared_lock (lockable_type &obj)
 Take out a shared lock on obj and remember it.
 strict_shared_lock (const lockable_type &obj)
 Take out a shared lock on obj and remember it.
 ~strict_shared_lock ()
 Release the held lock.

Private Member Functions

 strict_shared_lock ()
 strict_shared_lock (strict_shared_lock const &)
strict_shared_lockoperator= (strict_shared_lock const &)

Private Attributes

lockable_typem_obj
 The lock being held.

Detailed Description

template<typename LOCKABLE>
class AthContainers_detail::strict_shared_lock< LOCKABLE >

Lock object for taking out shared locks.

This is like the boost strict_lock, except that it takes out a shared lock on the underlying object rather than an exclusive one.

Definition at line 127 of file threading.h.

Member Typedef Documentation

◆ lockable_type

template<typename LOCKABLE>
typedef LOCKABLE AthContainers_detail::strict_shared_lock< LOCKABLE >::lockable_type

The underlying object type.

Definition at line 131 of file threading.h.

Constructor & Destructor Documentation

◆ strict_shared_lock() [1/4]

template<typename LOCKABLE>
AthContainers_detail::strict_shared_lock< LOCKABLE >::strict_shared_lock ( lockable_type & obj)
explicit

Take out a shared lock on obj and remember it.

Parameters
objThe lockable object.

◆ strict_shared_lock() [2/4]

template<typename LOCKABLE>
AthContainers_detail::strict_shared_lock< LOCKABLE >::strict_shared_lock ( const lockable_type & obj)
explicit

Take out a shared lock on obj and remember it.

Parameters
objThe lockable object.

◆ ~strict_shared_lock()

template<typename LOCKABLE>
AthContainers_detail::strict_shared_lock< LOCKABLE >::~strict_shared_lock ( )

Release the held lock.

◆ strict_shared_lock() [3/4]

template<typename LOCKABLE>
AthContainers_detail::strict_shared_lock< LOCKABLE >::strict_shared_lock ( )
private

◆ strict_shared_lock() [4/4]

template<typename LOCKABLE>
AthContainers_detail::strict_shared_lock< LOCKABLE >::strict_shared_lock ( strict_shared_lock< LOCKABLE > const & )
private

Member Function Documentation

◆ operator=()

template<typename LOCKABLE>
strict_shared_lock & AthContainers_detail::strict_shared_lock< LOCKABLE >::operator= ( strict_shared_lock< LOCKABLE > const & )
private

Member Data Documentation

◆ m_obj

template<typename LOCKABLE>
lockable_type& AthContainers_detail::strict_shared_lock< LOCKABLE >::m_obj
private

The lock being held.

Definition at line 163 of file threading.h.


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