diff options
| author | Huang Le <[email protected]> | 2014-06-27 02:55:39 +0800 |
|---|---|---|
| committer | Huang Le <[email protected]> | 2014-06-27 02:55:39 +0800 |
| commit | caf6150e9785da408f1e603ae70eae25b5202d98 (patch) | |
| tree | 299d50e40ef599b4d981cea65de8e6803da9281b /src/main.cpp | |
| parent | Merge pull request #3715 (diff) | |
| download | discoin-caf6150e9785da408f1e603ae70eae25b5202d98.tar.xz discoin-caf6150e9785da408f1e603ae70eae25b5202d98.zip | |
Use async name resolving to improve net thread responsiveness
In the LookupIntern(), things changed are:
1. Call getaddrinfo_a() instead of getaddrinfo() if available, the former is a sync version of the latter;
2. Try using inet_pton()/inet_addr() to convert the input text to a network addr structure at first, if success the extra name resolving thread inside getaddrinfo_a() could be avoided;
3. An interruption point added in the waiting loop for return from getaddrinfo_a(), which completes the improve for thread responsiveness.
A easy way to see the effect is to kick off a 'bitcoind stop' immediately after 'bitcoind -daemon', before the change it would take several, or even tens of, minutes on a bad network situation to wait for the running bitcoind to exit, now it costs only seconds.
Signed-off-by: Huang Le <[email protected]>
Diffstat (limited to 'src/main.cpp')
0 files changed, 0 insertions, 0 deletions