aboutsummaryrefslogtreecommitdiff
path: root/include/BH/Thread.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/BH/Thread.h')
-rw-r--r--include/BH/Thread.h223
1 files changed, 26 insertions, 197 deletions
diff --git a/include/BH/Thread.h b/include/BH/Thread.h
index b31b8ef..c0d6cca 100644
--- a/include/BH/Thread.h
+++ b/include/BH/Thread.h
@@ -16,284 +16,113 @@ typedef struct BH_Condition BH_Condition;
typedef int (*BH_ThreadCallback)(void *);
-/**
- * Creates new thread with specified \a stack size, thread \a callback
- * function and \a data.
- *
- * \param stack Stack size
- * \param callback Callback function
- * \param data User data
- *
- * \return On success, returns thread pointer.
- * \return On failure, returns NULL pointer.
- */
+
BH_Thread *BH_ThreadNew(size_t stack,
BH_ThreadCallback callback,
void *data);
-/**
- * Joins the specified \a thread.
- *
- * \param thread Thread
- *
- * \return On success, returns zero.
- * \return On failure, returns error code.
- */
+
int BH_ThreadJoin(BH_Thread *thread);
-/**
- * Detaches the specified \a thread.
- *
- * \param thread Thread
- *
- * \return On success, returns zero.
- * \return On failure, returns error code.
- */
+
int BH_ThreadDetach(BH_Thread *thread);
-/**
- * Creates new mutex.
- *
- * \return On success, returns mutex pointer.
- * \return On failure, returns NULL pointer.
- */
+
BH_Mutex *BH_MutexNew(void);
-/**
- * Frees the \a mutex.
- *
- * \param mutex Mutex
- */
+
void BH_MutexFree(BH_Mutex *mutex);
-/**
- * Locks the \a mutex.
- *
- * \param mutex Mutex
- *
- * \return On success, returns zero.
- * \return On failure, returns error code.
- */
+
int BH_MutexLock(BH_Mutex *mutex);
-/**
- * Unlocks the \a mutex.
- *
- * \param mutex Mutex
- *
- * \return On success, returns zero.
- * \return On failure, returns error code.
- */
+
int BH_MutexUnlock(BH_Mutex *mutex);
-/**
- * Tries to lock the \a mutex.
- *
- * \param mutex Mutex
- *
- * \return On success, returns zero.
- * \return On failure, returns error code.
- */
+
int BH_MutexLockTry(BH_Mutex *mutex);
-/**
- * Creates new semaphore.
- *
- * \param value Semaphore value
- *
- * \return On success, returns thread pointer.
- * \return On failure, returns NULL pointer.
- */
+
BH_Semaphore *BH_SemaphoreNew(int value);
-/**
- * Frees the \a semaphore.
- *
- * \param semaphore Semaphore
- */
+
void BH_SemaphoreFree(BH_Semaphore *semaphore);
-/**
- * Posts/increments the \a semaphore.
- *
- * \param semaphore Semaphore
- *
- * \return On success, returns zero.
- * \return On failure, returns error code.
- */
+
int BH_SemaphorePost(BH_Semaphore *semaphore);
-/**
- * Waits/decrements the \a semaphore.
- *
- * \param semaphore Semaphore
- *
- * \return On success, returns zero.
- * \return On failure, returns error code.
- */
+
int BH_SemaphoreWait(BH_Semaphore *semaphore);
-/**
- * Tries to wait/decrement the \a semaphore.
- *
- * \param semaphore Semaphore
- *
- * \return On success, returns zero.
- * \return On failure, returns error code.
- */
+
int BH_SemaphoreWaitTry(BH_Semaphore *semaphore);
-/**
- * Waits/decrements the \a semaphore with \a timeout.
- *
- * If timeout occures, return code will be BH_TIMEOUT.
- *
- * \param semaphore Semaphore
- * \param timeout Timeout in milliseconds
- *
- * \return On success, returns zero.
- * \return On failure, returns error code.
- */
+
int BH_SemaphoreWaitFor(BH_Semaphore *semaphore,
uint32_t timeout);
-/**
- * Creates new condition variable.
- *
- * \return On success, returns condition variable pointer.
- * \return On failure, returns NULL pointer.
- */
+
BH_Condition *BH_ConditionNew(void);
-/**
- * Frees the \a condition variable.
- *
- * \param condition Condition
- */
+
void BH_ConditionFree(BH_Condition *condition);
-/**
- * Unlocks the \a mutex and waits for the \a condition variable.
- *
- * \param condition Condition variable
- * \param mutex Mutex
- *
- * \return On success, returns zero.
- * \return On failure, returns error code.
- */
+
int BH_ConditionWait(BH_Condition *condition,
BH_Mutex *mutex);
-/**
- * Unlocks the \a mutex and waits for the \a condition variable with \a timeout.
- *
- * If timeout occures, return code will be BH_TIMEOUT.
- *
- * \param condition Condition variable
- * \param mutex Mutex
- * \param timeout Timeout in milliseconds
- *
- * \return On success, returns zero.
- * \return On failure, returns error code.
- */
+
int BH_ConditionWaitFor(BH_Condition *condition,
BH_Mutex *mutex,
uint32_t timeout);
-/**
- * Signals the \a condition variable.
- *
- * \param condition Condition variable
- *
- * \return On success, returns zero.
- * \return On failure, returns error code.
- */
+
int BH_ConditionSignal(BH_Condition *condition);
-/**
- * Broadcasts the \a condition variable.
- *
- * \param condition Condition variable
- *
- * \return On success, returns zero.
- * \return On failure, returns error code.
- */
+
int BH_ConditionBroadcast(BH_Condition *condition);
-/**
- * Locks the \a spinlock.
- *
- * \param lock Spinlock
- */
+
void BH_SpinlockLock(int *lock);
-/**
- * Tries to lock the \a spinlock.
- *
- * \param lock Spinlock
- *
- * \return On success, returns zero.
- * \return On failure, returns error code.
- */
+
int BH_SpinlockLockTry(int *lock);
-/**
- * Unlocks the \a spinlock.
- *
- * \param lock Spinlock
- */
+
void BH_SpinlockUnlock(int *lock);
-/**
- * Create new TSS/TLS slot index and destruction \a callback.
- *
- * \param callback Destruction callback
- *
- * \return On success, returns slot index.
- * \return On failure, returns error code.
- */
+
int BH_TssCreate(BH_GenericCallback callback);
-/**
- * Reads the value associated with the TSS \a index.
- *
- * \param index TSS index
- *
- * \return Index value
- */
+
void *BH_TssRead(int index);
-/**
- * Writes the \a value to the TSS \a index.
- *
- * \param index TSS index to
- * \param value Value
- */
+
void BH_TssWrite(int index,
void *value);