diff --git a/source/backend/engine/CarlaEngineInternal.hpp b/source/backend/engine/CarlaEngineInternal.hpp index f3c171434..225499f7a 100644 --- a/source/backend/engine/CarlaEngineInternal.hpp +++ b/source/backend/engine/CarlaEngineInternal.hpp @@ -34,7 +34,11 @@ // ----------------------------------------------------------------------- // Global action lock for UI operations, used for osc only -#define CARLA_ENGINE_THREAD_SAFE_SECTION const CarlaCriticalSection::Scope _ccsl(pData->_cs); +#ifndef BUILD_BRIDGE +# define CARLA_ENGINE_THREAD_SAFE_SECTION const CarlaCriticalSection::Scope _ccsl(pData->_cs); +#else +# define CARLA_ENGINE_THREAD_SAFE_SECTION +#endif // ----------------------------------------------------------------------- @@ -242,7 +246,9 @@ struct CarlaEngineProtectedData { EngineInternalTime time; EngineNextAction nextAction; +#ifndef BUILD_BRIDGE CarlaCriticalSection _cs; // for handling requests from multiple threads +#endif // ------------------------------------------------------------------- diff --git a/source/backend/engine/CarlaEngineOsc.cpp b/source/backend/engine/CarlaEngineOsc.cpp index ea2783f57..3aca172e3 100644 --- a/source/backend/engine/CarlaEngineOsc.cpp +++ b/source/backend/engine/CarlaEngineOsc.cpp @@ -156,7 +156,9 @@ int CarlaEngineOsc::handleMessage(const bool isTCP, const char* const path, cons CARLA_SAFE_ASSERT_RETURN(fName.isNotEmpty(), 1); CARLA_SAFE_ASSERT_RETURN(path != nullptr && path[0] != '\0', 1); carla_debug("CarlaEngineOsc::handleMessage(%s, \"%s\", %i, %p, \"%s\", %p)", bool2str(isTCP), path, argc, argv, types, msg); +#ifndef BUILD_BRIDGE const CarlaCriticalSection::Scope _ccsl(_cs); +#endif if (isTCP) { diff --git a/source/backend/engine/CarlaEngineOsc.hpp b/source/backend/engine/CarlaEngineOsc.hpp index be3b86269..0d1e60f8b 100644 --- a/source/backend/engine/CarlaEngineOsc.hpp +++ b/source/backend/engine/CarlaEngineOsc.hpp @@ -102,10 +102,9 @@ private: lo_server_thread fServerTCP; lo_server_thread fServerUDP; - CarlaCriticalSection _cs; - #ifndef BUILD_BRIDGE CarlaOscData fControlData; // for carla-control + CarlaCriticalSection _cs; #endif // ------------------------------------------------------------------- diff --git a/source/bridges/CarlaBridgeOsc.cpp b/source/bridges/CarlaBridgeOsc.cpp index bb137e8af..1176bcea8 100644 --- a/source/bridges/CarlaBridgeOsc.cpp +++ b/source/bridges/CarlaBridgeOsc.cpp @@ -51,12 +51,15 @@ void CarlaBridgeOsc::init(const char* const url) CARLA_ASSERT(url != nullptr); carla_debug("CarlaBridgeOsc::init(\"%s\")", url); + std::srand((uint)(uintptr_t)this); + std::srand((uint)(uintptr_t)&url); + #ifdef BUILD_BRIDGE_PLUGIN - fName = "carla/bridge-plugin-"; - fName += CarlaString(std::rand() % 9999); + fName = "plug-"; + fName += CarlaString(std::rand() % 99999); #else - fName = "carla/bridge-ui-"; - fName += CarlaString(std::rand() % 9999); + fName = "ui-"; + fName += CarlaString(std::rand() % 99999); #endif fServer = lo_server_new_with_proto(nullptr, LO_TCP, osc_error_handler);