Home | History | Annotate | Download | only in base
      1 // sigslot.h: Signal/Slot classes
      2 //
      3 // Written by Sarah Thompson (sarah (at) 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 
     15 multi_threaded_global::multi_threaded_global() {
     16   pthread_mutex_init(get_mutex(), NULL);
     17 }
     18 
     19 multi_threaded_global::multi_threaded_global(const multi_threaded_global&) {
     20 }
     21 
     22 multi_threaded_global::~multi_threaded_global() = default;
     23 
     24 void multi_threaded_global::lock() {
     25   pthread_mutex_lock(get_mutex());
     26 }
     27 
     28 void multi_threaded_global::unlock() {
     29   pthread_mutex_unlock(get_mutex());
     30 }
     31 
     32 multi_threaded_local::multi_threaded_local() {
     33   pthread_mutex_init(&m_mutex, NULL);
     34 }
     35 
     36 multi_threaded_local::multi_threaded_local(const multi_threaded_local&) {
     37   pthread_mutex_init(&m_mutex, NULL);
     38 }
     39 
     40 multi_threaded_local::~multi_threaded_local() {
     41   pthread_mutex_destroy(&m_mutex);
     42 }
     43 
     44 void multi_threaded_local::lock() {
     45   pthread_mutex_lock(&m_mutex);
     46 }
     47 
     48 void multi_threaded_local::unlock() {
     49   pthread_mutex_unlock(&m_mutex);
     50 }
     51 
     52 #endif  // _SIGSLOT_HAS_POSIX_THREADS
     53 
     54 };  // namespace sigslot
     55