• Huang Le's avatar
    Use async name resolving to improve net thread responsiveness · 230a0751
    Huang Le authored
    
    
    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: default avatarHuang Le <[email protected]>
    230a0751
netbase.cpp 36.6 KB