fix crash

pull/16/head
Jeff Becker 6 years ago
parent e7e1db8302
commit 4e7c6ee90a
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -29,6 +29,7 @@ namespace llarp
{
Context::~Context()
{
llarp_ev_loop_free(&mainloop);
}
void
@ -165,16 +166,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;
}
@ -231,14 +224,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);
@ -253,8 +240,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);
}
}
}

Loading…
Cancel
Save