blob: 9628217dc0729b0847c97a4567650beae235afd8 [file] [log] [blame]
// 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