You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-15 13:51:40 +00:00
Modernize atomics
- Based on C++11's `atomic` - Reworked `SafeRefCount` (based on the rewrite by @hpvb) - Replaced free atomic functions by the new `SafeNumeric<T>` - Replaced wrong cases of `volatile` by the new `SafeFlag` - Platform-specific implementations no longer needed Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
This commit is contained in:
@@ -217,8 +217,8 @@ void EditorResourcePreview::_generate_preview(Ref<ImageTexture> &r_texture, Ref<
|
||||
|
||||
void EditorResourcePreview::_thread() {
|
||||
|
||||
exited = false;
|
||||
while (!exit) {
|
||||
exited.clear();
|
||||
while (!exit.is_set()) {
|
||||
|
||||
preview_sem.wait();
|
||||
preview_mutex.lock();
|
||||
@@ -350,7 +350,7 @@ void EditorResourcePreview::_thread() {
|
||||
preview_mutex.unlock();
|
||||
}
|
||||
}
|
||||
exited = true;
|
||||
exited.set();
|
||||
}
|
||||
|
||||
void EditorResourcePreview::queue_edited_resource_preview(const Ref<Resource> &p_res, Object *p_receiver, const StringName &p_receiver_func, const Variant &p_userdata) {
|
||||
@@ -462,9 +462,9 @@ void EditorResourcePreview::start() {
|
||||
|
||||
void EditorResourcePreview::stop() {
|
||||
if (thread.is_started()) {
|
||||
exit = true;
|
||||
exit.set();
|
||||
preview_sem.post();
|
||||
while (!exited) {
|
||||
while (!exited.is_set()) {
|
||||
OS::get_singleton()->delay_usec(10000);
|
||||
VisualServer::get_singleton()->sync(); //sync pending stuff, as thread may be blocked on visual server
|
||||
}
|
||||
@@ -475,8 +475,6 @@ void EditorResourcePreview::stop() {
|
||||
EditorResourcePreview::EditorResourcePreview() {
|
||||
singleton = this;
|
||||
order = 0;
|
||||
exit = false;
|
||||
exited = false;
|
||||
}
|
||||
|
||||
EditorResourcePreview::~EditorResourcePreview() {
|
||||
|
||||
Reference in New Issue
Block a user