SSB-8693 slsi hal library code for GSCAN
[GitHub/LineageOS/android_hardware_samsung_slsi_scsc_wifibt_wifi_hal.git] / sync.h
CommitLineData
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
7class Mutex\r
8{\r
9private:\r
10 pthread_mutex_t mMutex;\r
11public:\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
29class Condition\r
30{\r
31private:\r
32 pthread_cond_t mCondition;\r
33 pthread_mutex_t mMutex;\r
34\r
35public:\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