diff options
Diffstat (limited to 'Alc/rwlock.h')
-rw-r--r-- | Alc/rwlock.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Alc/rwlock.h b/Alc/rwlock.h new file mode 100644 index 00000000..efbab4e8 --- /dev/null +++ b/Alc/rwlock.h @@ -0,0 +1,21 @@ +#ifndef AL_RWLOCK_H +#define AL_RWLOCK_H + +#include "AL/al.h" +#include "atomic.h" + +typedef struct { + volatile RefCount read_count; + volatile RefCount write_count; + volatile ALenum read_lock; + volatile ALenum read_entry_lock; + volatile ALenum write_lock; +} RWLock; + +void RWLockInit(RWLock *lock); +void ReadLock(RWLock *lock); +void ReadUnlock(RWLock *lock); +void WriteLock(RWLock *lock); +void WriteUnlock(RWLock *lock); + +#endif /* AL_RWLOCK_H */ |