24 if (!immediate_tasks_.empty()) {
25 auto task = immediate_tasks_.front();
26 immediate_tasks_.pop();
31 auto now = std::chrono::steady_clock::now();
32 while (!delayed_tasks_.empty() && delayed_tasks_.top().time.value() <= now) {
33 immediate_tasks_.push(delayed_tasks_.top());
38 if (!immediate_tasks_.empty()) {
39 auto task = immediate_tasks_.front();
40 immediate_tasks_.pop();
45 if (!delayed_tasks_.empty()) {
46 return delayed_tasks_.top().time.value() - now;
50 return std::monostate{};