FancySafeBot 0.0.1
A safe robotics library
Loading...
Searching...
No Matches
fsb_thread.h
1#ifndef FSB_THREAD_H
2#define FSB_THREAD_H
3
4#include <cstdlib>
5#include <cstdint>
6#include <pthread.h>
7#include <sys/types.h>
8
9namespace fsb
10{
11
23enum class ThreadStatus : uint8_t
24{
25 SUCCESS,
26 ERROR,
28};
29
33enum class LockStatus : uint8_t
34{
35 SUCCESS,
36 TIMEOUT,
37 ERROR
38};
39
48ThreadStatus set_thread_priority(pthread_t thread, int policy, int priority);
56ThreadStatus set_thread_cpu_affinity(pthread_t thread, size_t cpu_index);
57
65LockStatus mutex_initialize(pthread_mutex_t& mutex, bool shared = false);
72LockStatus mutex_lock(pthread_mutex_t& mutex);
79LockStatus mutex_unlock(pthread_mutex_t& mutex);
86LockStatus mutex_destroy(pthread_mutex_t& mutex);
87
95LockStatus condvar_initialize(pthread_cond_t& cond_var, bool shared = false);
105 pthread_cond_t& cond_var, pthread_mutex_t& mutex, const struct timespec& timeout);
113LockStatus condvar_signal(pthread_cond_t& cond_var, bool broadcast = false);
120LockStatus condvar_destroy(pthread_cond_t& cond_var);
121
122/*
123 * @}
124 */
125} // namespace fsb
126
127#endif
@ SUCCESS
Successful operation.
LockStatus condvar_wait_timeout(pthread_cond_t &cond_var, pthread_mutex_t &mutex, const struct timespec &timeout)
Wait on a condition variable with a timeout.
Definition fsb_thread.cpp:103
LockStatus
Status codes for lock and synchronization operations.
Definition fsb_thread.h:34
LockStatus mutex_lock(pthread_mutex_t &mutex)
Lock a mutex, blocking until the lock is acquired.
Definition fsb_thread.cpp:48
ThreadStatus set_thread_priority(pthread_t thread, int policy, int priority)
Set the scheduling priority of a thread.
Definition fsb_thread.cpp:13
LockStatus mutex_destroy(pthread_mutex_t &mutex)
Destroy a mutex and release its resources.
Definition fsb_thread.cpp:64
LockStatus condvar_signal(pthread_cond_t &cond_var, bool broadcast=false)
Signal one or all threads waiting on a condition variable.
Definition fsb_thread.cpp:113
LockStatus mutex_unlock(pthread_mutex_t &mutex)
Unlock a mutex.
Definition fsb_thread.cpp:56
LockStatus mutex_initialize(pthread_mutex_t &mutex, bool shared=false)
Initialize a mutex.
Definition fsb_thread.cpp:23
ThreadStatus
Status codes for thread operations.
Definition fsb_thread.h:24
ThreadStatus set_thread_cpu_affinity(pthread_t thread, size_t cpu_index)
Set the CPU affinity of a thread to a specific CPU core.
Definition fsb_thread_affinity.cpp:14
LockStatus condvar_destroy(pthread_cond_t &cond_var)
Destroy a condition variable and release its resources.
Definition fsb_thread.cpp:130
LockStatus condvar_initialize(pthread_cond_t &cond_var, bool shared=false)
Initialize a condition variable.
Definition fsb_thread.cpp:72
@ UNSUPPORTED
Operation is not supported on this platform.