Ryan Tharp 6 years ago
commit 4df6202c9f

@ -31,6 +31,7 @@ namespace llarp
{
Context::~Context()
{
llarp_ev_loop_free(&mainloop);
}
void
@ -189,16 +190,8 @@ namespace llarp
}
// run net io thread
if(singleThreaded)
{
llarp::LogInfo("running mainloop");
llarp_ev_loop_run_single_process(mainloop, worker, logic);
}
else
{
llarp::LogInfo("running mainloop");
return llarp_ev_loop_run(mainloop, logic);
}
llarp::LogInfo("running mainloop");
llarp_ev_loop_run_single_process(mainloop, worker, logic);
return 0;
}
@ -255,14 +248,8 @@ namespace llarp
llarp::LogDebug("free nodedb");
llarp_nodedb_free(&nodedb);
for(size_t i = 0; i < netio_threads.size(); ++i)
{
if(mainloop)
{
llarp::LogDebug("stopping event loop thread ", i);
llarp_ev_loop_stop(mainloop);
}
}
llarp::LogDebug("stopping event loop");
llarp_ev_loop_stop(mainloop);
llarp::LogDebug("free router");
llarp_free_router(&router);
@ -277,8 +264,6 @@ namespace llarp
}
netio_threads.clear();
llarp::LogDebug("free mainloop");
llarp_ev_loop_free(&mainloop);
}
bool

@ -44,8 +44,9 @@ llarp_ev_loop_run(struct llarp_ev_loop *ev, struct llarp_logic *logic)
{
while(ev->running())
{
ev->tick(EV_TICK_INTERVAL);
llarp_logic_tick(logic);
ev->tick(EV_TICK_INTERVAL);
if(ev->running())
llarp_logic_tick(logic);
}
return 0;
}
@ -58,8 +59,11 @@ llarp_ev_loop_run_single_process(struct llarp_ev_loop *ev,
while(ev->running())
{
ev->tick(EV_TICK_INTERVAL);
llarp_logic_tick_async(logic);
llarp_threadpool_tick(tp);
if(ev->running())
{
llarp_logic_tick_async(logic);
llarp_threadpool_tick(tp);
}
}
}

@ -185,19 +185,19 @@ namespace llarp
D = buf;
// zero out signature
Z.Zero();
// reset buffer
buf = llarp::StackBuffer< decltype(tmp) >(tmp);
auto buf2 = llarp::StackBuffer< decltype(tmp) >(tmp);
// encode frame
if(!BEncode(&buf))
if(!BEncode(&buf2))
{
llarp::LogError("frame too big to encode");
llarp::DumpBuffer(buf2);
return false;
}
// rewind
buf.sz = buf.cur - buf.base;
buf.cur = buf.base;
buf2.sz = buf2.cur - buf2.base;
buf2.cur = buf2.base;
// sign
if(!localIdent.Sign(crypto, Z, buf))
if(!localIdent.Sign(crypto, Z, buf2))
{
llarp::LogError("failed to sign? wtf?!");
return false;

Loading…
Cancel
Save