Change ILinkLayer::ScheduleTick to use new timer

pull/990/head
Thomas Winget 5 years ago
parent 71bb0dd520
commit 50118c3127

@ -7,6 +7,8 @@
#include <utility>
#include <unordered_set>
constexpr uint64_t LINK_LAYER_TICK_INTERVAL = 100;
namespace llarp
{
static constexpr size_t MaxSessionsPerKey = 16;
@ -289,7 +291,7 @@ namespace llarp
{
m_Worker = worker;
m_Logic = l;
ScheduleTick(100);
ScheduleTick(LINK_LAYER_TICK_INTERVAL);
return true;
}
@ -450,17 +452,18 @@ namespace llarp
}
void
ILinkLayer::OnTick(uint64_t interval)
ILinkLayer::OnTick()
{
auto now = Now();
Tick(now);
ScheduleTick(interval);
ScheduleTick(LINK_LAYER_TICK_INTERVAL);
}
void
ILinkLayer::ScheduleTick(uint64_t interval)
{
tick_id = m_Logic->call_later({interval, this, &ILinkLayer::on_timer_tick});
tick_id = m_Logic->call_later(interval,
std::bind(&ILinkLayer::on_timer_tick, this));
}
void

@ -207,17 +207,14 @@ namespace llarp
}
private:
static void
on_timer_tick(void* user, uint64_t orig, uint64_t left)
void
on_timer_tick()
{
// timer cancelled
if(left)
return;
static_cast< ILinkLayer* >(user)->OnTick(orig);
OnTick();
}
void
OnTick(uint64_t interval);
OnTick();
void
ScheduleTick(uint64_t interval);

Loading…
Cancel
Save