PaCO++  0.05
paco_pthread.cc
Go to the documentation of this file.
1 #include "paco_pthread.h"
2 
4 {
5  pthread_mutex_init(&mutex, 0);
6 }
7 
9 {
10  pthread_mutex_destroy(&mutex);
11 }
12 
13 void
15 {
16  pthread_mutex_lock(&mutex);
17 }
18 
19 void
21 {
22  pthread_mutex_unlock(&mutex);
23 }
24 
25 
27 {
28  mutex = m;
29  pthread_cond_init(&condition, 0);
30 }
31 
32 
34 {
35  pthread_cond_destroy(&condition);
36 }
37 
38 void
40 {
41  pthread_cond_wait(&condition, &mutex->mutex);
42 }
43 
44 void
46 {
47  pthread_cond_signal(&condition);
48 }
49 
50 
52 {
53  return new paco_pthread_mutex();
54 }
55 
57 {
58  return new paco_pthread_condition((paco_pthread_mutex*) mutex);
59 }
60 
62 {
63  pthread_attr_t attr;
64 
65  pthread_attr_init(&attr);
66  pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED );
67 
69  pthread_create(&th->thread, &attr, fn,arg);
70  return th;
71 }
paco_condition * paco_create_condition(paco_mutex *mutex)
Definition: paco_pthread.cc:56
paco_mutex * paco_create_mutex()
Definition: paco_pthread.cc:51
paco_thread * paco_create_thread(void *(*fn)(void *), void *arg=NULL)
Definition: paco_pthread.cc:61
paco_pthread_condition(paco_pthread_mutex *m)
Definition: paco_pthread.cc:26
pthread_mutex_t mutex
Definition: paco_pthread.h:25