From 9db58da40cfcb6643412bfae25aefc0cd1077f9d Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Mon, 27 May 2024 20:45:46 +0200 Subject: MHR-23: Improve project structure, make it better. Signed-off-by: Amlal El Mahrouss --- SDK/Libraries/CoreSystem/Headers/Thread.h | 47 +++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 SDK/Libraries/CoreSystem/Headers/Thread.h (limited to 'SDK/Libraries/CoreSystem/Headers/Thread.h') diff --git a/SDK/Libraries/CoreSystem/Headers/Thread.h b/SDK/Libraries/CoreSystem/Headers/Thread.h new file mode 100644 index 00000000..15b40df3 --- /dev/null +++ b/SDK/Libraries/CoreSystem/Headers/Thread.h @@ -0,0 +1,47 @@ +/* ------------------------------------------- + + Copyright SoftwareLabs + +------------------------------------------- */ + +// +// Created by Amlal on 3/18/24 +// + +#ifndef __THREAD__ +#define __THREAD__ + +#include + +#define kThreadErrorExit (-33) + +/// @brief Thread reference. +typedef QWordType ThreadRef; + +/// @brief Main application thread. +CS_EXTERN_C ThreadRef kMainThread; + +typedef VoidType (*ThreadEntrypointKind)(VoidType); + +/// @brief Creates a new thread, and runs the code. +/// @param threadName the thread's name. +/// @param threadStart where to start. +/// @return +CS_EXTERN_C ThreadRef CSThreadCreate(const CharacterTypeUTF8* threadName, ThreadEntrypointKind threadStart); + +/// @brief Dispoes the thread, and exits with code kThreadErrorExit +/// @param ref the thread reference. +/// @return nothing. +CS_EXTERN_C VoidType CSThreadRelease(ThreadRef ref); + +/// @brief Waits for the thread to complete. +/// @param ref the thread reference. +/// @return nothing. +CS_EXTERN_C VoidType CSThreadJoin(ThreadRef ref); + +/// @brief Yields the current thread. +/// @param ref the thead reference. +/// @return +CS_EXTERN_C VoidType CSThreadYield(ThreadRef ref); + +#endif // __THREAD__ -- cgit v1.2.3