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-19 13:29:41 +01:00
parent 6ddfc8e718
commit 99fe462452
87 changed files with 385 additions and 1056 deletions

View File

@ -553,7 +553,7 @@ protected:
volatile bool active = false;
Object *target_instance = nullptr;
StringName target_method;
Thread *thread = nullptr;
Thread thread;
static void _bind_methods();
static void _start_func(void *ud);
@ -569,9 +569,6 @@ public:
String get_id() const;
bool is_active() const;
Variant wait_to_finish();
_Thread() {}
~_Thread();
};
VARIANT_ENUM_CAST(_Thread::Priority);