-#include "semaphore.h"
-
-// TODO: implement mutex lock
-
-typedef struct sem_t mutex_t;
-
-static inline void mutex_init(mutex_t *mutex) {
- sem_init(mutex, 1);
+#include <lunaix/types.h>
+#include <stdatomic.h>
+
+typedef struct mutex_s
+{
+ atomic_ulong lk;
+ pid_t owner;
+} mutex_t;
+
+static inline void
+mutex_init(mutex_t* mutex)
+{
+ mutex->lk = ATOMIC_VAR_INIT(0);