make it not crash

pull/7/head
Jeff Becker 6 years ago
parent d011fb550e
commit 2f51f6202a

@ -66,7 +66,6 @@ llarp_link::TickSessions()
if(itr->second->timedout(now))
{
itr->second->done();
delete itr->second;
itr = m_PendingSessions.erase(itr);
}
else
@ -157,8 +156,8 @@ void
llarp_link::put_session(const llarp::Addr& src, llarp_link_session* impl)
{
lock_t lock(m_sessions_Mutex);
m_sessions.insert(std::make_pair(src, impl));
impl->our_router = &router->rc;
m_sessions.insert(std::make_pair(src, impl));
}
void
@ -195,24 +194,13 @@ llarp_link::iterate_sessions(std::function< bool(llarp_link_session*) > visitor)
}
void
llarp_link::handle_logic_pump(void* user)
llarp_link::PumpLogic()
{
llarp_link* self = static_cast< llarp_link* >(user);
auto now = llarp_time_now_ms();
self->iterate_sessions([now](llarp_link_session* s) -> bool {
auto now = llarp_time_now_ms();
iterate_sessions([now](llarp_link_session* s) -> bool {
s->TickLogic(now);
return true;
});
self->pumpingLogic = false;
}
void
llarp_link::PumpLogic()
{
if(pumpingLogic)
return;
pumpingLogic = true;
llarp_logic_queue_job(logic, {this, &handle_logic_pump});
}
void

@ -42,7 +42,6 @@ llarp_link_session::llarp_link_session(llarp_link *l, const byte_t *seckey,
crypto->encryption_keygen(eph_seckey);
llarp_rc_clear(&remote_router);
crypto->randbytes(token, 32);
llarp::LogInfo("session created");
frame.alive();
working.store(false);
createdAt = llarp_time_now_ms();
@ -283,17 +282,6 @@ handle_establish_timeout(void *user, uint64_t orig, uint64_t left)
void
llarp_link_session::done()
{
auto logic = serv->logic;
if(establish_job_id)
{
llarp_logic_remove_call(logic, establish_job_id);
handle_establish_timeout(this, 0, 0);
}
if(intro_resend_job_id)
{
llarp_logic_remove_call(logic, intro_resend_job_id);
handle_introack_timeout(this, 0, 0);
}
}
void

@ -8,7 +8,7 @@ llarp_init_logic()
llarp_logic* logic = new llarp_logic;
if(logic)
{
logic->thread = llarp_init_threadpool(1, "llarp-logic");
logic->thread = llarp_init_same_process_threadpool();
logic->timer = llarp_init_timer();
}
return logic;
@ -75,10 +75,8 @@ llarp_logic_mainloop(struct llarp_logic* logic)
void
llarp_logic_queue_job(struct llarp_logic* logic, struct llarp_thread_job job)
{
llarp_thread_job j;
j.user = job.user;
j.work = job.work;
llarp_threadpool_queue_job(logic->thread, j);
if(job.user && job.work)
llarp_threadpool_queue_job(logic->thread, {job.user, job.work});
}
uint32_t

Loading…
Cancel
Save