diff options
Diffstat (limited to 'include/BH/Thread.h')
| -rw-r--r-- | include/BH/Thread.h | 223 |
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); |
