libnx/nx/source/kernel/rwlock.c
2018-01-11 22:25:49 +01:00

29 lines
441 B
C

// Copyright 2018 plutoo
#include <switch.h>
void rwlockReadLock(RwLock* r) {
rmutexLock(&r->r);
if (r->b++ == 0)
rmutexLock(&r->g);
rmutexUnlock(&r->r);
}
void rwlockReadUnlock(RwLock* r) {
rmutexLock(&r->r);
if (r->b-- == 1)
rmutexUnlock(&r->g);
rmutexUnlock(&r->r);
}
void rwlockWriteLock(RwLock* r) {
rmutexLock(&r->g);
}
void rwlockWriteUnlock(RwLock* r) {
rmutexUnlock(&r->g);
}