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:
@ -397,7 +397,7 @@ Error AudioDriverWASAPI::init() {
|
||||
exit_thread = false;
|
||||
thread_exited = false;
|
||||
|
||||
thread = Thread::create(thread_func, this);
|
||||
thread.start(thread_func, this);
|
||||
|
||||
return OK;
|
||||
}
|
||||
@ -767,13 +767,8 @@ void AudioDriverWASAPI::unlock() {
|
||||
}
|
||||
|
||||
void AudioDriverWASAPI::finish() {
|
||||
if (thread) {
|
||||
exit_thread = true;
|
||||
Thread::wait_to_finish(thread);
|
||||
|
||||
memdelete(thread);
|
||||
thread = nullptr;
|
||||
}
|
||||
exit_thread = true;
|
||||
thread.wait_to_finish();
|
||||
|
||||
finish_capture_device();
|
||||
finish_render_device();
|
||||
|
||||
@ -64,7 +64,7 @@ class AudioDriverWASAPI : public AudioDriver {
|
||||
AudioDeviceWASAPI audio_output;
|
||||
|
||||
Mutex mutex;
|
||||
Thread *thread = nullptr;
|
||||
Thread thread;
|
||||
|
||||
Vector<int32_t> samples_in;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user