]> git.ipfire.org Git - thirdparty/curl.git/commit
Previously, processing a large batch of timeouts was O(n^2) in the number of
authorSteinar H. Gunderson <sesse@google.com>
Sat, 29 Sep 2007 18:18:47 +0000 (18:18 +0000)
committerSteinar H. Gunderson <sesse@google.com>
Sat, 29 Sep 2007 18:18:47 +0000 (18:18 +0000)
commit23f5d145ec69e2a8b62e75cc49b591fef04ca48d
tree3bbbeb0269bb896342bc24b839d7b5ac966bf6f7
parentb01ab65225dec292919f8123ef2557d0a94e4569
Previously, processing a large batch of timeouts was O(n^2) in the number of
outstanding queries, and processing a DNS response packet was O(n) in the
number of outstanding queries. To speed things up in Google, we added a few circular,
doubly-linked lists of queries that are hash-bucketed based on
the attributes we care about, so most important operations are now O(1).

It might be that the number of buckets are higher than most people would need,
but on a quick calculation it should only be 100kB or so even on a 64-bit
system, so I've let it stay as-is.
ares/ares_cancel.c
ares/ares_destroy.c
ares/ares_fds.c
ares/ares_getsock.c
ares/ares_init.c
ares/ares_private.h
ares/ares_process.c
ares/ares_query.c
ares/ares_send.c
ares/ares_timeout.c