From a6dca80710949455acd682ad1fe9fbd0f6663c13 Mon Sep 17 00:00:00 2001 From: MikhailGorobets Date: Wed, 28 Jan 2026 00:11:34 +0600 Subject: [PATCH] Emscripten Platform Misc: Implemented SetCurrentThreadName --- Platforms/Emscripten/CMakeLists.txt | 1 + .../interface/EmscriptenPlatformMisc.hpp | 6 ++- .../Emscripten/src/EmscriptenPlatformMisc.cpp | 41 +++++++++++++++++++ 3 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 Platforms/Emscripten/src/EmscriptenPlatformMisc.cpp diff --git a/Platforms/Emscripten/CMakeLists.txt b/Platforms/Emscripten/CMakeLists.txt index 62485211cf..9bcb49d3f0 100644 --- a/Platforms/Emscripten/CMakeLists.txt +++ b/Platforms/Emscripten/CMakeLists.txt @@ -14,6 +14,7 @@ set(INTERFACE set(SOURCE src/EmscriptenDebug.cpp src/EmscriptenFileSystem.cpp + src/EmscriptenPlatformMisc.cpp ../Linux/src/LinuxFileSystem.cpp ) diff --git a/Platforms/Emscripten/interface/EmscriptenPlatformMisc.hpp b/Platforms/Emscripten/interface/EmscriptenPlatformMisc.hpp index d4abb83c46..cb6b3fa82f 100644 --- a/Platforms/Emscripten/interface/EmscriptenPlatformMisc.hpp +++ b/Platforms/Emscripten/interface/EmscriptenPlatformMisc.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2019-2022 Diligent Graphics LLC + * Copyright 2019-2026 Diligent Graphics LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,6 +33,8 @@ namespace Diligent { struct EmscriptenMisc : public LinuxMisc -{}; +{ + static void SetCurrentThreadName(const char* Name); +}; } // namespace Diligent diff --git a/Platforms/Emscripten/src/EmscriptenPlatformMisc.cpp b/Platforms/Emscripten/src/EmscriptenPlatformMisc.cpp new file mode 100644 index 0000000000..b14913a4ec --- /dev/null +++ b/Platforms/Emscripten/src/EmscriptenPlatformMisc.cpp @@ -0,0 +1,41 @@ +/* + * Copyright 2026 Diligent Graphics LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * In no event and under no legal theory, whether in tort (including negligence), + * contract, or otherwise, unless required by applicable law (such as deliberate + * and grossly negligent acts) or agreed to in writing, shall any Contributor be + * liable for any damages, including any direct, indirect, special, incidental, + * or consequential damages of any character arising as a result of this License or + * out of the use or inability to use the software (including but not limited to damages + * for loss of goodwill, work stoppage, computer failure or malfunction, or any and + * all other commercial damages or losses), even if such Contributor has been advised + * of the possibility of such damages. + */ + +#include "EmscriptenPlatformMisc.hpp" + +#include +#include + +namespace Diligent +{ + +void EmscriptenMisc::SetCurrentThreadName(const char* Name) +{ + if (Name != nullptr && Name[0] != '\0') + emscripten_set_thread_name(pthread_self(), Name); +} + +} // namespace Diligent