reinit random in case it was initialized on another thread
This commit is contained in:
parent
ba9ad5f2e5
commit
b51041ac48
1 changed files with 4 additions and 0 deletions
|
@ -758,6 +758,8 @@ void Engine::addModule(Module* module) {
|
|||
DISTRHO_SAFE_ASSERT_RETURN(it == internal->modules.end(),);
|
||||
auto tit = std::find(internal->terminalModules.begin(), internal->terminalModules.end(), module);
|
||||
DISTRHO_SAFE_ASSERT_RETURN(tit == internal->terminalModules.end(),);
|
||||
// Reinitialize random module since it uses thread-local RNG state
|
||||
random::init();
|
||||
// Set ID if unset or collides with an existing ID
|
||||
while (module->id < 0 || internal->modulesCache.find(module->id) != internal->modulesCache.end()) {
|
||||
// Randomly generate ID
|
||||
|
@ -1003,6 +1005,8 @@ void Engine::addCable(Cable* cable) {
|
|||
if (cable2->outputModule == cable->outputModule && cable2->outputId == cable->outputId)
|
||||
outputWasConnected = true;
|
||||
}
|
||||
// Reinitialize random module since it uses thread-local RNG state
|
||||
random::init();
|
||||
// Set ID if unset or collides with an existing ID
|
||||
while (cable->id < 0 || internal->cablesCache.find(cable->id) != internal->cablesCache.end()) {
|
||||
// Randomly generate ID
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue