libxr 1.0
Want to be the best embedded framework
Loading...
Searching...
No Matches
condition_var.cpp
1#include "condition_var.hpp"
2
3#include "libxr_def.hpp"
4
5using namespace LibXR;
6
10}
11
15}
16
17ErrorCode ConditionVar::Wait(uint32_t timeout) {
18 struct timespec ts;
20 ts.tv_sec += timeout / 1000;
21 ts.tv_nsec += static_cast<__syscall_slong_t>((timeout % 1000) * 1000000);
22 if (ts.tv_nsec >= 1000000000) {
23 ts.tv_sec++;
24 ts.tv_nsec -= 1000000000;
25 }
26
30
31 if (ans == 0) {
32 return ErrorCode::OK;
33 } else {
34 return ErrorCode::TIMEOUT;
35 }
36}
37
42}
43
48}
condition_var_handle handle_
底层条件变量句柄 / Underlying condition variable handle
ErrorCode Wait(uint32_t timeout)
等待条件变量 / Waits for the condition variable
void Broadcast()
广播信号唤醒所有等待线程 / Broadcasts a signal to wake up all waiting threads
~ConditionVar()
析构函数 / Destructor
ConditionVar()
默认构造函数 / Default constructor
void Signal()
发送信号唤醒一个等待线程 / Signals one waiting thread
LibXR Color Control Library / LibXR终端颜色控制库
constexpr auto min(T1 a, T2 b) -> typename std::common_type< T1, T2 >::type
计算两个数的最小值
pthread_mutex_t mutex
互斥锁 Mutex
pthread_cond_t cond
条件变量 Condition variable