//----------------------------------------------- // pthread.h: reader-priority //----------------------------------------------- #ifndef pthread_h #define pthread_h //----------------------------------------------- #include // std::size_t #include // pthread_rwlock_* //----------------------------------------------- class pthread_lock { public: pthread_lock(std::size_t) { pthread_rwlock_init(&rwlock, NULL); } ~pthread_lock() { pthread_rwlock_destroy(&rwlock); } void reader_lock() { pthread_rwlock_rdlock(&rwlock); } void reader_unlock() { pthread_rwlock_unlock(&rwlock); } void writer_lock() { pthread_rwlock_wrlock(&rwlock); } void writer_unlock() { pthread_rwlock_unlock(&rwlock); } private: pthread_rwlock_t rwlock; }; //----------------------------------------------- #endif // pthread_h