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 11 namespace sigslot { 12 13 #ifdef _SIGSLOT_HAS_POSIX_THREADS 14 multi_threaded_global()15multi_threaded_global::multi_threaded_global() { 16 pthread_mutex_init(get_mutex(), NULL); 17 } 18 multi_threaded_global(const multi_threaded_global &)19multi_threaded_global::multi_threaded_global(const multi_threaded_global&) { 20 } 21 22 multi_threaded_global::~multi_threaded_global() = default; 23 lock()24void multi_threaded_global::lock() { 25 pthread_mutex_lock(get_mutex()); 26 } 27 unlock()28void multi_threaded_global::unlock() { 29 pthread_mutex_unlock(get_mutex()); 30 } 31 multi_threaded_local()32multi_threaded_local::multi_threaded_local() { 33 pthread_mutex_init(&m_mutex, NULL); 34 } 35 multi_threaded_local(const multi_threaded_local &)36multi_threaded_local::multi_threaded_local(const multi_threaded_local&) { 37 pthread_mutex_init(&m_mutex, NULL); 38 } 39 ~multi_threaded_local()40multi_threaded_local::~multi_threaded_local() { 41 pthread_mutex_destroy(&m_mutex); 42 } 43 lock()44void multi_threaded_local::lock() { 45 pthread_mutex_lock(&m_mutex); 46 } 47 unlock()48void multi_threaded_local::unlock() { 49 pthread_mutex_unlock(&m_mutex); 50 } 51 52 #endif // _SIGSLOT_HAS_POSIX_THREADS 53 54 }; // namespace sigslot 55