diff options
author | Chris Robinson <[email protected]> | 2014-05-07 19:16:49 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2014-05-07 19:16:49 -0700 |
commit | a2bddb7b40960b3a8680afa0ab31e99d204dece1 (patch) | |
tree | 999977561aff4cec16ee966c494666371a60fde7 /include/rwlock.h | |
parent | 3e274c3a5784daa313fb5f7663f1b1fc55f5cefc (diff) |
Move RWLock and UIntMap implementations to common
This should make the code in common completely self-reliant.
Diffstat (limited to 'include/rwlock.h')
-rw-r--r-- | include/rwlock.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/rwlock.h b/include/rwlock.h new file mode 100644 index 00000000..764940fa --- /dev/null +++ b/include/rwlock.h @@ -0,0 +1,22 @@ +#ifndef AL_RWLOCK_H +#define AL_RWLOCK_H + +#include "bool.h" +#include "atomic.h" + +typedef struct { + volatile RefCount read_count; + volatile RefCount write_count; + volatile int read_lock; + volatile int read_entry_lock; + volatile int write_lock; +} RWLock; +#define RWLOCK_STATIC_INITIALIZE { 0, 0, false, false, false } + +void RWLockInit(RWLock *lock); +void ReadLock(RWLock *lock); +void ReadUnlock(RWLock *lock); +void WriteLock(RWLock *lock); +void WriteUnlock(RWLock *lock); + +#endif /* AL_RWLOCK_H */ |