1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-06 12:20:30 +00:00

Modernize Thread

- Based on C++11's `thread` and `thread_local`
- No more need to allocate-deallocate or check for null
- No pointer anymore, just a member variable
- Platform-specific implementations no longer needed (except for the few cases of non-portable functions)
- Simpler for `NO_THREADS`
- Thread ids are now the same across platforms (main is 1; others follow)
This commit is contained in:
Pedro J. Estébanez
2021-01-27 20:10:10 +01:00
parent 8f6a636ae7
commit 6d89f675b1
84 changed files with 370 additions and 1080 deletions

View File

@@ -113,7 +113,7 @@ Error HTTPRequest::request(const String &p_url, const Vector<String> &p_custom_h
thread_done = false;
thread_request_quit = false;
client->set_blocking_mode(true);
thread = Thread::create(_thread_func, this);
thread.start(_thread_func, this);
} else {
client->set_blocking_mode(false);
err = _request();
@@ -160,9 +160,7 @@ void HTTPRequest::cancel_request() {
set_process_internal(false);
} else {
thread_request_quit = true;
Thread::wait_to_finish(thread);
memdelete(thread);
thread = NULL;
thread.wait_to_finish();
}
if (file) {
@@ -568,8 +566,6 @@ void HTTPRequest::_bind_methods() {
HTTPRequest::HTTPRequest() {
thread = NULL;
port = 80;
redirections = 0;
max_redirects = 8;