[pull] master from GaijinEntertainment:master#776
Merged
Conversation
Adds test_concurrent_init (static) and test_concurrent_init_dyn (dynamic) targets that spawn 64 threads x 3 rounds, each calling NEED_ALL_DEFAULT_MODULES + Module::Initialize/Shutdown concurrently. Reproduces the race condition reported in #2027 on Linux/GCC. Passes on Windows/MSVC (TLS implementation differs).
…le-init Add concurrent module init test (issue #2027)
- CMakeLists.txt: Replace ADD_DAS_STATIC_MODULE_LIB with ADD_MODULE_LIB to create both static (libDasModuleClangBind) and shared (dasModuleClangBind) targets. Add link libraries, include directories, and SETUP_CPP11 for the shared target. - dasClangBind.cpp: Add REGISTER_DYN_MODULE macro to export the dynamic module registrator function (register_dyn_Module_dasClangBind) needed by the dynamic loading system. - .das_module: New descriptor file that registers the shared module DLL and native .das path for dynamic builds.
Resolves #2024 NEED_MODULE / NEED_ALL_DEFAULT_MODULES cannot be used inside C++ namespaces because the embedded extern declaration binds to the enclosing namespace scope. New macros (additive, existing macros unchanged): - DECLARE_MODULE / DECLARE_ALL_DEFAULT_MODULES file-scope forward decl - PULL_MODULE / PULL_ALL_DEFAULT_MODULES namespace-safe registration CMake now generates external_declare.inc and external_pull.inc alongside external_need.inc for plugin modules. Includes tutorial 22 (namespace integration), RST docs, and embedding doc updates.
Add namespace-safe module macros (DECLARE_MODULE / PULL_MODULE)
…nfig - release.yml: Remove 'daslang_dyn' target (renamed to 'daslang'). Building 'daslang' already pulls in all shared modules via ADD_DEPENDENCIES. - dasHV: Pass --config to ExternalProject build/install steps to fix Debug/Release CRT mismatch on multi-config generators.
The release install step requires static module libraries (e.g., libDasModuleAudio.lib) which are only built as dependencies of daslang_static. Previously only the daslang target was built, which only builds shared modules. Now both targets are built so cmake --install can find all required files.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )