dont use timers use check for tick

pull/1334/head
Jeff Becker 5 years ago
parent f8026b8a2d
commit 3c4d557942
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -279,7 +279,7 @@ namespace libuv
struct udp_glue
{
uv_udp_t m_Handle;
uv_timer_t m_Ticker;
uv_check_t m_Ticker;
llarp_udp_io* const m_UDP;
llarp::Addr m_Addr;
bool gotpkts;
@ -291,7 +291,7 @@ namespace libuv
m_Ticker.data = this;
gotpkts = false;
uv_udp_init(loop, &m_Handle);
uv_timer_init(loop, &m_Ticker);
uv_check_init(loop, &m_Ticker);
}
static void
@ -323,7 +323,7 @@ namespace libuv
}
static void
OnTick(uv_timer_t* t)
OnTick(uv_check_t* t)
{
static_cast< udp_glue* >(t->data)->Tick();
}
@ -333,7 +333,6 @@ namespace libuv
{
if(m_UDP && m_UDP->tick)
m_UDP->tick(m_UDP);
uv_timer_again(&m_Ticker);
}
static int
@ -358,7 +357,7 @@ namespace libuv
llarp::LogError("failed to start recving packets via ", m_Addr);
return false;
}
if(uv_timer_start(&m_Ticker, &OnTick, 50, 50))
if(uv_check_start(&m_Ticker, &OnTick))
{
llarp::LogError("failed to start ticker");
return false;
@ -380,7 +379,7 @@ namespace libuv
void
Close()
{
uv_timer_stop(&m_Ticker);
uv_check_stop(&m_Ticker);
uv_close((uv_handle_t*)&m_Handle, &OnClosed);
}
};
@ -388,7 +387,7 @@ namespace libuv
struct tun_glue
{
uv_poll_t m_Handle;
uv_timer_t m_Ticker;
uv_check_t m_Ticker;
llarp_tun_io* const m_Tun;
device* const m_Device;
byte_t m_Buffer[1500];
@ -407,7 +406,7 @@ namespace libuv
}
static void
OnTick(uv_timer_t* timer)
OnTick(uv_check_t* timer)
{
static_cast< tun_glue* >(timer->data)->Tick();
}
@ -437,11 +436,10 @@ namespace libuv
void
Tick()
{
if(m_Tun->tick)
m_Tun->tick(m_Tun);
if(m_Tun->before_write)
m_Tun->before_write(m_Tun);
uv_timer_again(&m_Ticker);
if(m_Tun->tick)
m_Tun->tick(m_Tun);
}
static void
@ -505,8 +503,8 @@ namespace libuv
llarp::LogError("failed to start polling on ", m_Tun->ifname);
return false;
}
if(uv_timer_init(loop, &m_Ticker) != 0
|| uv_timer_start(&m_Ticker, &OnTick, 50, 50) != 0)
if(uv_check_init(loop, &m_Ticker) != 0
|| uv_check_start(&m_Ticker, &OnTick) != 0)
{
llarp::LogError("failed to set up tun interface timer for ",
m_Tun->ifname);

Loading…
Cancel
Save