@@ -58,12 +58,12 @@ TimerPool::TimerToken TimerPool::Impl::doEvery(const Milliseconds &m_sec, Callba
58
58
return TimerToken ();
59
59
}
60
60
61
- auto this_timer = wp_loop_->newTimerEvent (" TimerPool::doEvery" );
62
- auto new_token = timers_.alloc (this_timer );
63
- this_timer ->initialize (m_sec, event::Event::Mode::kPersist );
64
- this_timer ->setCallback (std::move (cb));
65
- this_timer ->enable ();
66
- return new_token ;
61
+ auto timer = wp_loop_->newTimerEvent (" TimerPool::doEvery" );
62
+ auto token = timers_.alloc (timer );
63
+ timer ->initialize (m_sec, event::Event::Mode::kPersist );
64
+ timer ->setCallback (std::move (cb));
65
+ timer ->enable ();
66
+ return token ;
67
67
}
68
68
69
69
TimerPool::TimerToken TimerPool::Impl::doAfter (const Milliseconds &m_sec, Callback &&cb)
@@ -73,25 +73,26 @@ TimerPool::TimerToken TimerPool::Impl::doAfter(const Milliseconds &m_sec, Callba
73
73
return TimerToken ();
74
74
}
75
75
76
- auto this_timer = wp_loop_->newTimerEvent (" TimerPool::doAfter" );
77
- auto new_token = timers_.alloc (this_timer );
78
- this_timer ->initialize (m_sec, event::Event::Mode::kOneshot );
76
+ auto timer = wp_loop_->newTimerEvent (" TimerPool::doAfter" );
77
+ auto token = timers_.alloc (timer );
78
+ timer ->initialize (m_sec, event::Event::Mode::kOneshot );
79
79
80
80
#if __cplusplus >= 201402L
81
- this_timer->setCallback ([loop = wp_loop_, moved_cb = std::move (cb), this_timer] {
82
- moved_cb ();
83
- loop->runNext ([this_timer] { delete this_timer; });
81
+ timer->setCallback ([this , cb = std::move (cb), token] {
82
+ cb ();
83
+ auto timer = timers_.free (token);
84
+ wp_loop_->runNext ([timer] { delete timer; });
84
85
});
85
86
#elif __cplusplus >= 201103L
86
- auto loop = wp_loop_;
87
- this_timer->setCallback ([loop, cb, this_timer] {
87
+ timer->setCallback ([this , cb, token] {
88
88
cb ();
89
- loop->runNext ([this_timer] { delete this_timer; });
89
+ auto timer = timers_.free (token);
90
+ wp_loop_->runNext ([timer] { delete timer; });
90
91
});
91
92
#endif
92
93
93
- this_timer ->enable ();
94
- return new_token ;
94
+ timer ->enable ();
95
+ return token ;
95
96
}
96
97
97
98
TimerPool::TimerToken TimerPool::Impl::doAt (const TimePoint &time_point, Callback &&cb)
0 commit comments