Browse Source

Don't use thread-safety on bridges, not needed

tags/1.9.4
falkTX 11 years ago
parent
commit
f7e4bb57f8
4 changed files with 17 additions and 7 deletions
  1. +7
    -1
      source/backend/engine/CarlaEngineInternal.hpp
  2. +2
    -0
      source/backend/engine/CarlaEngineOsc.cpp
  3. +1
    -2
      source/backend/engine/CarlaEngineOsc.hpp
  4. +7
    -4
      source/bridges/CarlaBridgeOsc.cpp

+ 7
- 1
source/backend/engine/CarlaEngineInternal.hpp View File

@@ -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

// -------------------------------------------------------------------



+ 2
- 0
source/backend/engine/CarlaEngineOsc.cpp View File

@@ -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)
{


+ 1
- 2
source/backend/engine/CarlaEngineOsc.hpp View File

@@ -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

// -------------------------------------------------------------------


+ 7
- 4
source/bridges/CarlaBridgeOsc.cpp View File

@@ -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);


Loading…
Cancel
Save