summaryrefslogtreecommitdiffstats
path: root/src/win32/thread_win32.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/win32/thread_win32.c')
-rw-r--r--src/win32/thread_win32.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/win32/thread_win32.c b/src/win32/thread_win32.c
new file mode 100644
index 0000000..e4411b1
--- /dev/null
+++ b/src/win32/thread_win32.c
@@ -0,0 +1,28 @@
+// Copyright 2012-2022 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
+
+#include "zix/thread.h"
+
+#include "zix/status.h"
+
+#include <windows.h>
+
+#include <stddef.h>
+
+ZixStatus
+zix_thread_create(ZixThread* thread,
+ size_t stack_size,
+ ZixThreadFunc function,
+ void* arg)
+{
+ *thread = CreateThread(NULL, stack_size, function, arg, 0, NULL);
+ return *thread ? ZIX_STATUS_SUCCESS : ZIX_STATUS_ERROR;
+}
+
+ZixStatus
+zix_thread_join(ZixThread thread)
+{
+ return (WaitForSingleObject(thread, INFINITE) == WAIT_OBJECT_0)
+ ? ZIX_STATUS_SUCCESS
+ : ZIX_STATUS_ERROR;
+}