◆ TimerAwaiter() [1/3]
◆ TimerAwaiter() [2/3]
33 other.closed_ = true;
34 }
std::optional< std::coroutine_handle<> > handle_
Definition timer.cc:107
bool stopped_
Definition timer.cc:109
std::unique_ptr< uv_timer_t > timer_
Definition timer.cc:106
void setData(Handle *handle, Data *data)
Definition internal_utils.h:55
◆ TimerAwaiter() [3/3]
uvco::TimerAwaiter::TimerAwaiter |
( |
const Loop & |
loop, |
|
|
uint64_t |
millis, |
|
|
bool |
repeating = false |
|
) |
| |
|
inline |
45 :
timer_{std::make_unique<uv_timer_t>()} {
46 uv_timer_init(loop.uvloop(),
timer_.get());
48 if (repeating) {
50 } else {
52 }
53 }
void onMultiTimerFired(uv_timer_t *handle)
Definition timer.cc:118
void onSingleTimerDone(uv_timer_t *handle)
Definition timer.cc:112
◆ ~TimerAwaiter()
uvco::TimerAwaiter::~TimerAwaiter |
( |
| ) |
|
|
inline |
54 {
57 fmt::print(stderr,
58 "TimerAwaiter::~TimerAwaiter(): closing timer in dtor; "
59 "this will leak memory. "
60 "Please co_await timer.close() if possible.\n");
62 }
63 }
bool closed_
Definition timer.cc:108
void stop()
Definition timer.cc:91
Promise< void > closeHandle(T *handle, C closer)
Definition close.h:28
◆ await_ready()
bool uvco::TimerAwaiter::await_ready |
( |
| ) |
|
|
inline |
bool isReady()
Definition timer.cc:87
◆ await_resume()
bool uvco::TimerAwaiter::await_resume |
( |
| ) |
const |
|
inline |
◆ await_suspend()
bool uvco::TimerAwaiter::await_suspend |
( |
std::coroutine_handle<> |
handle | ) |
|
|
inline |
81 {
83 return true;
84 }
◆ close()
Promise< void > uvco::TimerAwaiter::close |
( |
| ) |
|
|
inline |
65 {
67 co_return;
68 }
69
70
71 if (uv_is_closing((uv_handle_t *)
timer_.get()) != 0) {
72 co_return;
73 }
78 }
◆ isReady()
bool uvco::TimerAwaiter::isReady |
( |
| ) |
|
|
inline |
87 {
88 uint64_t due = uv_timer_get_due_in(
timer_.get());
89 return due == 0;
90 }
◆ operator=() [1/2]
◆ operator=() [2/2]
36 {
37 timer_ = std::move(other.timer_);
41 other.closed_ = true;
42 return *this;
43 }
◆ resume()
void uvco::TimerAwaiter::resume |
( |
| ) |
|
|
inline |
97 {
102 }
103 }
static void enqueue(std::coroutine_handle<> handle)
Definition loop.cc:73
◆ stop()
void uvco::TimerAwaiter::stop |
( |
| ) |
|
|
inline |
91 {
93 uv_timer_stop(
timer_.get());
95 }
96 }
◆ closed_
bool uvco::TimerAwaiter::closed_ = false |
|
private |
◆ handle_
std::optional<std::coroutine_handle<> > uvco::TimerAwaiter::handle_ |
|
private |
◆ stopped_
bool uvco::TimerAwaiter::stopped_ = false |
|
private |
◆ timer_
std::unique_ptr<uv_timer_t> uvco::TimerAwaiter::timer_ |
|
private |
The documentation for this class was generated from the following file: