summaryrefslogtreecommitdiff
path: root/src/platform/mutex.h
diff options
context:
space:
mode:
authoromniscient <17525998+omnisci3nce@users.noreply.github.com>2024-04-27 16:14:07 +1000
committeromniscient <17525998+omnisci3nce@users.noreply.github.com>2024-04-27 16:14:07 +1000
commit55bb30899899d1e6f34e85d87909d5108d085adb (patch)
treeffc06fb5677b6f9d5289187267a7cd517efe2e3e /src/platform/mutex.h
parentc72440f89cfabe0c7752f9105cfc244a79016965 (diff)
defining api for mutex/thread
Diffstat (limited to 'src/platform/mutex.h')
-rw-r--r--src/platform/mutex.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/platform/mutex.h b/src/platform/mutex.h
new file mode 100644
index 0000000..0552ea2
--- /dev/null
+++ b/src/platform/mutex.h
@@ -0,0 +1,26 @@
+/**
+ * @file mutex.h
+ * @author your name (you@domain.com)
+ * @brief
+ * @version 0.1
+ * @date 2024-04-27
+ *
+ * @copyright Copyright (c) 2024
+ *
+ */
+#include <stdbool.h>
+
+typedef struct cel_mutex cel_mutex;
+
+cel_mutex mutex_create();
+
+void mutex_destroy(cel_mutex* mutex);
+
+/** @brief Blocks until the mutex can be acquired. if returns false then an error occurred and can be checked (TODO) */
+bool mutex_lock(cel_mutex* mutex);
+
+/** @brief Tries to acquire the mutex like `mutex_lock` but returns immediately if the mutex has already been locked */
+bool mutex_try_lock(cel_mutex* mutex);
+
+/** @brief Releases a mutex. If it is already unlocked then does nothing */
+void mutex_unlock(cel_mutex* mutex); \ No newline at end of file