diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2020-02-28 00:26:01 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-28 00:26:01 +0100 |
commit | b7b39786840a41a057f531ed13b64e26366befac (patch) | |
tree | b78a2e0bc0b3f49e82e148e8edb741930ff0ce55 /servers/visual/rasterizer_rd | |
parent | e66d519286693a03bf59eaba0a5f29c1c9b15d64 (diff) | |
parent | 18fbdbb456c07a56b358bea2e392765fbcbb3283 (diff) |
Merge pull request #36556 from RandomShaper/rework_mutex
Reimplement `Mutex` with C++'s `<mutex>` (plus more)
Diffstat (limited to 'servers/visual/rasterizer_rd')
-rw-r--r-- | servers/visual/rasterizer_rd/shader_rd.cpp | 12 | ||||
-rw-r--r-- | servers/visual/rasterizer_rd/shader_rd.h | 4 |
2 files changed, 7 insertions, 9 deletions
diff --git a/servers/visual/rasterizer_rd/shader_rd.cpp b/servers/visual/rasterizer_rd/shader_rd.cpp index cc6c13f598..857a29f7f4 100644 --- a/servers/visual/rasterizer_rd/shader_rd.cpp +++ b/servers/visual/rasterizer_rd/shader_rd.cpp @@ -342,23 +342,21 @@ void ShaderRD::_compile_variant(uint32_t p_variant, Version *p_version) { } if (!build_ok) { - variant_set_mutex.lock(); //properly print the errors + MutexLock lock(variant_set_mutex); //properly print the errors ERR_PRINT("Error compiling " + String(current_stage == RD::SHADER_STAGE_COMPUTE ? "Compute " : (current_stage == RD::SHADER_STAGE_VERTEX ? "Vertex" : "Fragment")) + " shader, variant #" + itos(p_variant) + " (" + variant_defines[p_variant].get_data() + ")."); ERR_PRINT(error); #ifdef DEBUG_ENABLED ERR_PRINT("code:\n" + current_source.get_with_code_lines()); #endif - - variant_set_mutex.unlock(); return; } RID shader = RD::get_singleton()->shader_create(stages); - - variant_set_mutex.lock(); - p_version->variants[p_variant] = shader; - variant_set_mutex.unlock(); + { + MutexLock lock(variant_set_mutex); + p_version->variants[p_variant] = shader; + } } void ShaderRD::_compile_version(Version *p_version) { diff --git a/servers/visual/rasterizer_rd/shader_rd.h b/servers/visual/rasterizer_rd/shader_rd.h index 8581b85ff4..6635b08cc8 100644 --- a/servers/visual/rasterizer_rd/shader_rd.h +++ b/servers/visual/rasterizer_rd/shader_rd.h @@ -33,11 +33,11 @@ #include "core/hash_map.h" #include "core/map.h" +#include "core/os/mutex.h" #include "core/rid_owner.h" #include "core/variant.h" #include <stdio.h> -#include <mutex> /** @author Juan Linietsky <reduzio@gmail.com> */ @@ -66,7 +66,7 @@ class ShaderRD { bool initialize_needed; }; - std::mutex variant_set_mutex; + Mutex variant_set_mutex; void _compile_variant(uint32_t p_variant, Version *p_version); |