diff --git a/include/opendht/scheduler.h b/include/opendht/scheduler.h index a5cb6ca74fc3d3358d1569275d03f24a6ca16e79..4e13053c53971cf7940b4845e1dbeb2515707690 100644 --- a/include/opendht/scheduler.h +++ b/include/opendht/scheduler.h @@ -83,8 +83,9 @@ public: */ time_point run() { syncTime(); - for (auto t = timers.begin(); t != timers.end(); ) { - if (t->first > now) + while (not timers.empty()) { + auto timer = timers.begin(); + if (timer->first > now) break; auto& job = timer->second; @@ -92,7 +93,7 @@ public: job->do_(); job->done = true; } - t = timers.erase(t); + timers.erase(timer); } return getNextJobTime(); }