b2737ea7 |
1 | \r |
2 | #include <pthread.h>\r |
3 | \r |
4 | #ifndef __WIFI_HAL_SYNC_H__\r |
5 | #define __WIFI_HAL_SYNC_H__\r |
6 | \r |
7 | class Mutex\r |
8 | {\r |
9 | private:\r |
10 | pthread_mutex_t mMutex;\r |
11 | public:\r |
12 | Mutex() {\r |
13 | pthread_mutex_init(&mMutex, NULL);\r |
14 | }\r |
15 | ~Mutex() {\r |
16 | pthread_mutex_destroy(&mMutex);\r |
17 | }\r |
18 | int tryLock() {\r |
19 | return pthread_mutex_trylock(&mMutex);\r |
20 | }\r |
21 | int lock() {\r |
22 | return pthread_mutex_lock(&mMutex);\r |
23 | }\r |
24 | void unlock() {\r |
25 | pthread_mutex_unlock(&mMutex);\r |
26 | }\r |
27 | };\r |
28 | \r |
29 | class Condition\r |
30 | {\r |
31 | private:\r |
32 | pthread_cond_t mCondition;\r |
33 | pthread_mutex_t mMutex;\r |
34 | \r |
35 | public:\r |
36 | Condition() {\r |
37 | pthread_mutex_init(&mMutex, NULL);\r |
38 | pthread_cond_init(&mCondition, NULL);\r |
39 | }\r |
40 | ~Condition() {\r |
41 | pthread_cond_destroy(&mCondition);\r |
42 | pthread_mutex_destroy(&mMutex);\r |
43 | }\r |
44 | \r |
45 | int wait() {\r |
46 | return pthread_cond_wait(&mCondition, &mMutex);\r |
47 | }\r |
48 | \r |
49 | void signal() {\r |
50 | pthread_cond_signal(&mCondition);\r |
51 | }\r |
52 | };\r |
53 | \r |
54 | #endif |