Solaris 2.x Readers/Writer Class
The following is the implementation of the RWLock
class on Solaris 2.x, which is made much easier by the fact that
a writer-priority readers/writer lock primitive exists:
class RWLock {
private:
rwlock_t lock;
public:
RWLock(void) {
rwlock_init(&lock, USYNC_PROCESS, (void*)0);
}
~RWLock(void) {
rwlock_destroy(&lock);
}
void ReadLock(void) {
rwlock_rdlock(&lock);
}
void WriteLock(void) {
rwlock_wrlock(&lock);
}
void Unlock(void) {
rwlock_unlock(&lock);
}
};
Solaris 2.x does not implement a fair-share readers/writer lock.