Reader/Writer with Semaphores
SharedLock::AcquireRead() {
rmx.P();
if (first reader)
wsem.P();
rmx.V();
}
SharedLock::ReleaseRead() {
rmx.P();
if (last reader)
wsem.V();
rmx.V();
}
SharedLock::AcquireWrite() {
wsem.P();
}
SharedLock::ReleaseWrite() {
wsem.V();
}
Previous slide
Next slide
Back to first slide
View graphic version