mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-11 05:03:34 +01:00
b1d56fc589
Long ago we used to call connection_ap_handshake_attach_circuit() only in a few places, since connection_ap_attach_pending() attaches all the pending connections, and does so regularly. But this turned out to have a performance problem: it would introduce a delay to launching or connecting a stream. We couldn't just call connection_ap_attach_pending() every time we make a new connection, since it walks the whole connection list. So we started calling connection_ap_attach_pending all over, instead! But that's kind of ugly and messes up our callgraph. So instead, we now have connection_ap_attach_pending() use a list only of the pending connections, so we can call it much more frequently. We have a separate function to scan the whole connection array to see if we missed adding anything, and log a warning if so. Closes ticket #17590
7 lines
342 B
Plaintext
7 lines
342 B
Plaintext
o Code simplification and refactorings:
|
|
- Decouple the list of streams needing to be attached to circuits
|
|
from the overall connection list. This change makes it possible to
|
|
attach streams quickly while both simplifying Tor's callgraph and
|
|
avoiding O(N) scans of the entire connection list. Closes ticket
|
|
17590.
|