FancySafeBot 0.0.1
A safe robotics library
Loading...
Searching...
No Matches
fsb_thread.h
1#pragma once
2
3#include <cstdlib>
4#include <cstdint>
5#include <pthread.h>
6#include <array>
7
8#include "fsb_configuration.h"
9
10namespace fsb
11{
12
21 enum class ThreadStatus
22 {
23 SUCCESS,
24 ERROR,
25 UNSUPPORTED
26};
27
28enum class LockStatus
29{
30 SUCCESS,
31 TIMEOUT,
32 ERROR
33};
34
35ThreadStatus set_thread_priority(pthread_t thread, int policy, int priority);
36ThreadStatus set_thread_cpu_affinity(pthread_t thread, size_t cpu_index);
37
38LockStatus mutex_initialize(pthread_mutex_t& mutex, bool shared = false);
39LockStatus mutex_lock(pthread_mutex_t& mutex);
40LockStatus mutex_unlock(pthread_mutex_t& mutex);
41LockStatus mutex_destroy(pthread_mutex_t& mutex);
42
43LockStatus condvar_initialize(pthread_cond_t& cond_var, bool shared = false);
44LockStatus condvar_wait_timeout(pthread_cond_t& cond_var, pthread_mutex_t& mutex, const struct timespec& timeout);
45LockStatus condvar_signal(pthread_cond_t& cond_var, bool broadcast = false);
46LockStatus condvar_destroy(pthread_cond_t& cond_var);
47
48 /*
49 * @}
50 */
51}
@ SUCCESS
Successful operation.