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.