ATLAS Offline Software
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
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. More...
 

Public Member Functions

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

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. More...
 

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 198 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 202 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 234 of file threading.h.


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