| // sigslot.h: Signal/Slot classes | 
 | // | 
 | // Written by Sarah Thompson (sarah@telergy.com) 2002. | 
 | // | 
 | // License: Public domain. You are free to use this code however you like, with | 
 | // the proviso that the author takes on no responsibility or liability for any | 
 | // use. | 
 |  | 
 | #include "webrtc/base/sigslot.h" | 
 |  | 
 | namespace sigslot { | 
 |  | 
 | #ifdef _SIGSLOT_HAS_POSIX_THREADS | 
 |  | 
 | multi_threaded_global::multi_threaded_global() { | 
 |   pthread_mutex_init(get_mutex(), NULL); | 
 | } | 
 |  | 
 | multi_threaded_global::multi_threaded_global(const multi_threaded_global&) { | 
 | } | 
 |  | 
 | multi_threaded_global::~multi_threaded_global() = default; | 
 |  | 
 | void multi_threaded_global::lock() { | 
 |   pthread_mutex_lock(get_mutex()); | 
 | } | 
 |  | 
 | void multi_threaded_global::unlock() { | 
 |   pthread_mutex_unlock(get_mutex()); | 
 | } | 
 |  | 
 | multi_threaded_local::multi_threaded_local() { | 
 |   pthread_mutex_init(&m_mutex, NULL); | 
 | } | 
 |  | 
 | multi_threaded_local::multi_threaded_local(const multi_threaded_local&) { | 
 |   pthread_mutex_init(&m_mutex, NULL); | 
 | } | 
 |  | 
 | multi_threaded_local::~multi_threaded_local() { | 
 |   pthread_mutex_destroy(&m_mutex); | 
 | } | 
 |  | 
 | void multi_threaded_local::lock() { | 
 |   pthread_mutex_lock(&m_mutex); | 
 | } | 
 |  | 
 | void multi_threaded_local::unlock() { | 
 |   pthread_mutex_unlock(&m_mutex); | 
 | } | 
 |  | 
 | #endif  // _SIGSLOT_HAS_POSIX_THREADS | 
 |  | 
 | };  // namespace sigslot |