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