﻿id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc,actualpoints,parent,points,reviewer,sponsor 25374,Create a better-designed system for handling computation outside the event loop,nickm,nickm,"Right now, we do a couple of things in `run_main_loop_once` that happen outside the event loop (because we want to re-scan for events event loop before they happen): * Making events on active_linked_connection_lst active. * Running connection_ap_attach_pending. But we can do this much better. With Libevent 2.1, instead of making the loop exit for this, we can should do all of these things in a separate event callback, and call `event_base_loopcontinue()` at the end of that event's callback so that the event_base will get rescanned before we return. With earlier versions of Libevent, we can do something similar with event_base_loopbreak(). Doing this won't lower the number of wakeups we do, but it should simplify our overall event loop logic, and make other event loop simplifications easier. ",defect,closed,Low,Tor: 0.3.4.x-final,Core Tor/Tor,,Normal,implemented,"034-roadmap-subtask, 034-triage-20180328, 034-included-20180328",,,#25500,,dgoulet,Sponsor8