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:
parent
6ddfc8e718
commit
99fe462452
87 changed files with 385 additions and 1056 deletions
|
|
@ -118,7 +118,7 @@ void AudioEffectRecordInstance::init() {
|
|||
#ifdef NO_THREADS
|
||||
AudioServer::get_singleton()->add_update_callback(&AudioEffectRecordInstance::_update, this);
|
||||
#else
|
||||
io_thread = Thread::create(_thread_callback, this);
|
||||
io_thread.start(_thread_callback, this);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
@ -126,9 +126,7 @@ void AudioEffectRecordInstance::finish() {
|
|||
#ifdef NO_THREADS
|
||||
AudioServer::get_singleton()->remove_update_callback(&AudioEffectRecordInstance::_update, this);
|
||||
#else
|
||||
if (thread_active) {
|
||||
Thread::wait_to_finish(io_thread);
|
||||
}
|
||||
io_thread.wait_to_finish();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ class AudioEffectRecordInstance : public AudioEffectInstance {
|
|||
Ref<AudioEffectRecord> base;
|
||||
|
||||
bool is_recording;
|
||||
Thread *io_thread;
|
||||
Thread io_thread;
|
||||
bool thread_active = false;
|
||||
|
||||
Vector<AudioFrame> ring_buffer;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue