godot/core/io
Fabio Alessandrelli 811ea6ad64
[Net] Fix IP address resolution incorrectly locking the main thread.
This seems to be a pretty old bug, older then originally reported (at
least under certain circumstances).

The IP singleton uses a resolve queue so developers can queue hostnames
for resolution in a separate while keeping the main thread unlocked
(address-resolution OS functions are blocking, and could block for a long
time in case of network disruption).

In most places though, the address resolution function was called with
the mutex locked, causing other functions (querying status, queueing
another hostname, ecc) to block until that resolution ended.

This commit ensures that all calls to OS address resolution are done
with the mutex unlocked.

(cherry picked from commit aca5540e13)
2021-08-03 14:33:42 +02:00
..
SCsub SCons: Format buildsystem files with psf/black 2020-06-10 15:30:52 +02:00
compression.cpp Fix decompression with FastLZ when buffer size is less than 16 bytes 2021-07-13 12:13:01 +02:00
compression.h Work on porting HTTPRequest compression to 3.3 2021-05-14 12:20:31 +03:00
config_file.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
config_file.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
dtls_server.cpp Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
dtls_server.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
file_access_compressed.cpp Make all file access 64-bit (`uint64_t`) 2021-05-16 17:52:31 +02:00
file_access_compressed.h Make all file access 64-bit (`uint64_t`) 2021-05-16 17:52:31 +02:00
file_access_encrypted.cpp FileAccess: Don't err in `store_buffer` with buffer of size 0 2021-06-07 22:36:07 +02:00
file_access_encrypted.h Make all file access 64-bit (`uint64_t`) 2021-05-16 17:52:31 +02:00
file_access_memory.cpp FileAccess: Don't err in `store_buffer` with buffer of size 0 2021-06-07 22:36:07 +02:00
file_access_memory.h Make all file access 64-bit (`uint64_t`) 2021-05-16 17:52:31 +02:00
file_access_network.cpp Make all file access 64-bit (`uint64_t`) 2021-05-16 17:52:31 +02:00
file_access_network.h Make all file access 64-bit (`uint64_t`) 2021-05-16 17:52:31 +02:00
file_access_pack.cpp Make all file access 64-bit (`uint64_t`) 2021-05-16 17:52:31 +02:00
file_access_pack.h Add symlink API to the DirAccess (on macOS and Linux). 2021-05-22 17:36:16 +03:00
file_access_zip.cpp Fix duplicate close files when deconstructing ZipArchive 2021-05-24 12:56:41 +02:00
file_access_zip.h Make all file access 64-bit (`uint64_t`) 2021-05-16 17:52:31 +02:00
http_client.cpp Fix unicode invalid skip error in AssetLib 2021-07-13 10:20:03 +02:00
http_client.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
image_loader.cpp Remove duplicate ERR_PRINTS macro 2021-06-16 11:56:25 +01:00
image_loader.h Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
ip.cpp [Net] Fix IP address resolution incorrectly locking the main thread. 2021-08-03 14:33:42 +02:00
ip.h Support multiple address resolution in DNS requests 2021-06-09 12:06:46 +07:00
ip_address.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
ip_address.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
json.cpp Fix json dump and print of circular structure 2021-06-17 12:47:53 +02:00
json.h Fix json dump and print of circular structure 2021-06-17 12:47:53 +02:00
logger.cpp Improve the console error logging appearance 2021-06-13 19:18:09 +02:00
logger.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
marshalls.cpp [Net] Fix Marshalls infinite recursion crash. 2021-08-03 09:33:24 +02:00
marshalls.h [Net] Fix Marshalls infinite recursion crash. 2021-08-03 09:33:24 +02:00
multiplayer_api.cpp MultiplayerAPI is_network_server Fails Silently 2021-07-20 13:05:13 +02:00
multiplayer_api.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
net_socket.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
net_socket.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
networked_multiplayer_peer.cpp Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
networked_multiplayer_peer.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
packet_peer.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
packet_peer.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
packet_peer_dtls.cpp Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
packet_peer_dtls.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
packet_peer_udp.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
packet_peer_udp.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
pck_packer.cpp Make all file access 64-bit (`uint64_t`) 2021-05-16 17:52:31 +02:00
pck_packer.h Make all file access 64-bit (`uint64_t`) 2021-05-16 17:52:31 +02:00
resource_format_binary.cpp Remove duplicate WARN_PRINTS macro 2021-06-18 12:57:59 +01:00
resource_format_binary.h Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
resource_importer.cpp Expose an ImportOrder enum in ResourceImporter 2021-07-26 13:26:58 +02:00
resource_importer.h Expose an ImportOrder enum in ResourceImporter 2021-07-26 13:26:58 +02:00
resource_loader.cpp Remove duplicate ERR_PRINTS macro 2021-06-16 11:56:25 +01:00
resource_loader.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
resource_saver.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
resource_saver.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
stream_peer.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
stream_peer.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
stream_peer_ssl.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
stream_peer_ssl.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
stream_peer_tcp.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
stream_peer_tcp.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
tcp_server.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
tcp_server.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
translation_loader_po.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
translation_loader_po.h Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
udp_server.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
udp_server.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
xml_parser.cpp Add support for numeric XML entities to XMLParser 2021-06-03 11:44:47 +02:00
xml_parser.h Add support for numeric XML entities to XMLParser 2021-06-03 11:44:47 +02:00
zip_io.cpp Make all file access 64-bit (`uint64_t`) 2021-05-16 17:52:31 +02:00
zip_io.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00