| |
| #include <pthread.h> |
| |
| #ifndef __WIFI_HAL_SYNC_H__ |
| #define __WIFI_HAL_SYNC_H__ |
| |
| class Mutex |
| { |
| private: |
| pthread_mutex_t mMutex; |
| public: |
| Mutex() { |
| pthread_mutex_init(&mMutex, NULL); |
| } |
| ~Mutex() { |
| pthread_mutex_destroy(&mMutex); |
| } |
| int tryLock() { |
| return pthread_mutex_trylock(&mMutex); |
| } |
| int lock() { |
| return pthread_mutex_lock(&mMutex); |
| } |
| void unlock() { |
| pthread_mutex_unlock(&mMutex); |
| } |
| }; |
| |
| class Condition |
| { |
| private: |
| pthread_cond_t mCondition; |
| pthread_mutex_t mMutex; |
| |
| public: |
| Condition() { |
| pthread_mutex_init(&mMutex, NULL); |
| pthread_cond_init(&mCondition, NULL); |
| } |
| ~Condition() { |
| pthread_cond_destroy(&mCondition); |
| pthread_mutex_destroy(&mMutex); |
| } |
| |
| int wait() { |
| return pthread_cond_wait(&mCondition, &mMutex); |
| } |
| |
| void signal() { |
| pthread_cond_signal(&mCondition); |
| } |
| }; |
| |
| #endif |