CS350 COS
COS
Loading...
Searching...
No Matches
mutex.h
Go to the documentation of this file.
1
2#ifndef __MUTEX_H__
3#define __MUTEX_H__
4
5#define MTX_STATUS_UNLOCKED 0
6#define MTX_STATUS_LOCKED 1
7
8typedef struct Mutex {
13 LIST_ENTRY(Mutex) buckets;
15
16void Mutex_Init(Mutex *mtx, const char *name);
17void Mutex_Destroy(Mutex *mtx);
18void Mutex_Lock(Mutex *mtx);
19int Mutex_TryLock(Mutex *mtx);
20void Mutex_Unlock(Mutex *mtx);
21
22#endif /* __MUTEX_H__ */
23
Definition: mutex.h:8
uint64_t status
Definition: mutex.h:9
WaitChannel chan
Definition: mutex.h:12
LIST_ENTRY(Mutex) buckets
Thread * owner
Definition: mutex.h:10
Spinlock lock
Definition: mutex.h:11
Definition: thread.h:31
void Mutex_Destroy(Mutex *mtx)
Definition: mutex.c:39
void Mutex_Unlock(Mutex *mtx)
Definition: mutex.c:83
void Mutex_Lock(Mutex *mtx)
Definition: mutex.c:52
void Mutex_Init(Mutex *mtx, const char *name)
Definition: mutex.c:30
int Mutex_TryLock(Mutex *mtx)
Definition: mutex.c:70
unsigned long uint64_t
Definition: types.h:13