1// sigslot.h: Signal/Slot classes 2// 3// Written by Sarah Thompson (sarah@telergy.com) 2002. 4// 5// License: Public domain. You are free to use this code however you like, with 6// the proviso that the author takes on no responsibility or liability for any 7// use. 8 9#include "webrtc/base/sigslot.h" 10 11namespace sigslot { 12 13#ifdef _SIGSLOT_HAS_POSIX_THREADS 14 15multi_threaded_global::multi_threaded_global() { 16 pthread_mutex_init(get_mutex(), NULL); 17} 18 19multi_threaded_global::multi_threaded_global(const multi_threaded_global&) { 20} 21 22multi_threaded_global::~multi_threaded_global() = default; 23 24void multi_threaded_global::lock() { 25 pthread_mutex_lock(get_mutex()); 26} 27 28void multi_threaded_global::unlock() { 29 pthread_mutex_unlock(get_mutex()); 30} 31 32multi_threaded_local::multi_threaded_local() { 33 pthread_mutex_init(&m_mutex, NULL); 34} 35 36multi_threaded_local::multi_threaded_local(const multi_threaded_local&) { 37 pthread_mutex_init(&m_mutex, NULL); 38} 39 40multi_threaded_local::~multi_threaded_local() { 41 pthread_mutex_destroy(&m_mutex); 42} 43 44void multi_threaded_local::lock() { 45 pthread_mutex_lock(&m_mutex); 46} 47 48void multi_threaded_local::unlock() { 49 pthread_mutex_unlock(&m_mutex); 50} 51 52#endif // _SIGSLOT_HAS_POSIX_THREADS 53 54}; // namespace sigslot 55