Move atomic method definitions to a separate common source
[openal-soft.git] / Alc / rwlock.h
blob0c321a11cafb9080bfb3fc3ac8418520ba517a9c
1 #ifndef AL_RWLOCK_H
2 #define AL_RWLOCK_H
4 #include "AL/al.h"
5 #include "atomic.h"
7 typedef struct {
8 volatile RefCount read_count;
9 volatile RefCount write_count;
10 volatile ALenum read_lock;
11 volatile ALenum read_entry_lock;
12 volatile ALenum write_lock;
13 } RWLock;
14 #define RWLOCK_STATIC_INITIALIZE { 0, 0, AL_FALSE, AL_FALSE, AL_FALSE }
16 void RWLockInit(RWLock *lock);
17 void ReadLock(RWLock *lock);
18 void ReadUnlock(RWLock *lock);
19 void WriteLock(RWLock *lock);
20 void WriteUnlock(RWLock *lock);
22 #endif /* AL_RWLOCK_H */