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