Browse Source

Use QThread instead of our own CarlaThread for now

tags/1.9.4
falkTX 12 years ago
parent
commit
2247e136bd
9 changed files with 26 additions and 18 deletions
  1. +2
    -2
      source/backend/engine/CarlaEngine.cpp
  2. +1
    -1
      source/backend/engine/CarlaEngineThread.cpp
  3. +4
    -2
      source/backend/engine/CarlaEngineThread.hpp
  4. +6
    -4
      source/backend/native/zynaddsubfx.cpp
  5. +3
    -3
      source/backend/plugin/BridgePlugin.cpp
  6. +4
    -2
      source/backend/plugin/CarlaPluginThread.hpp
  7. +2
    -2
      source/backend/plugin/DssiPlugin.cpp
  8. +2
    -2
      source/backend/plugin/VstPlugin.cpp
  9. +2
    -0
      source/utils/CarlaThread.hpp

+ 2
- 2
source/backend/engine/CarlaEngine.cpp View File

@@ -593,8 +593,8 @@ bool CarlaEngine::init(const char* const clientName)
kData->nextAction.ready(); kData->nextAction.ready();
kData->thread.startNow(); kData->thread.startNow();


if (type() == kEngineTypePlugin)
kData->thread.waitForStarted();
//if (type() == kEngineTypePlugin)
// kData->thread.waitForStarted();


return true; return true;
} }


+ 1
- 1
source/backend/engine/CarlaEngineThread.cpp View File

@@ -60,7 +60,7 @@ void CarlaEngineThread::stopNow()


const CarlaMutex::ScopedLocker sl(&fMutex); const CarlaMutex::ScopedLocker sl(&fMutex);


if (isRunning() && ! stop(500))
if (isRunning() && ! wait(500))
terminate(); terminate();
} }




+ 4
- 2
source/backend/engine/CarlaEngineThread.hpp View File

@@ -20,7 +20,9 @@


#include "CarlaBackend.hpp" #include "CarlaBackend.hpp"
#include "CarlaMutex.hpp" #include "CarlaMutex.hpp"
#include "CarlaThread.hpp"

//#include "CarlaThread.hpp"
#include <QtCore/QThread>


CARLA_BACKEND_START_NAMESPACE CARLA_BACKEND_START_NAMESPACE


@@ -28,7 +30,7 @@ CARLA_BACKEND_START_NAMESPACE
} // Fix editor indentation } // Fix editor indentation
#endif #endif


class CarlaEngineThread : public CarlaThread
class CarlaEngineThread : public QThread
{ {
public: public:
CarlaEngineThread(CarlaEngine* const engine); CarlaEngineThread(CarlaEngine* const engine);


+ 6
- 4
source/backend/native/zynaddsubfx.cpp View File

@@ -22,9 +22,11 @@
#include "CarlaNative.hpp" #include "CarlaNative.hpp"
#include "CarlaMIDI.h" #include "CarlaMIDI.h"
#include "CarlaString.hpp" #include "CarlaString.hpp"
#include "CarlaThread.hpp"
//#include "CarlaThread.hpp"
#include "RtList.hpp" #include "RtList.hpp"


#include <QtCore/QThread>

#include "zynaddsubfx/Misc/Master.h" #include "zynaddsubfx/Misc/Master.h"
#include "zynaddsubfx/Misc/Util.h" #include "zynaddsubfx/Misc/Util.h"


@@ -94,7 +96,7 @@ public:
{ {
fThread.start(); fThread.start();
maybeInitPrograms(kMaster); maybeInitPrograms(kMaster);
fThread.waitForStarted();
//fThread.waitForStarted();
} }


~ZynAddSubFxPlugin() ~ZynAddSubFxPlugin()
@@ -329,7 +331,7 @@ private:
ProgramInfo(const ProgramInfo&) = delete; ProgramInfo(const ProgramInfo&) = delete;
}; };


class ZynThread : public CarlaThread
class ZynThread : public QThread
{ {
public: public:
ZynThread(Master* const master, const HostDescriptor* const host) ZynThread(Master* const master, const HostDescriptor* const host)
@@ -371,7 +373,7 @@ private:
void stop() void stop()
{ {
fQuit = true; fQuit = true;
CarlaThread::stop();
quit();
} }


#ifdef WANT_ZYNADDSUBFX_UI #ifdef WANT_ZYNADDSUBFX_UI


+ 3
- 3
source/backend/plugin/BridgePlugin.cpp View File

@@ -150,7 +150,7 @@ public:
kData->osc.data.free(); kData->osc.data.free();


// Wait a bit first, then force kill // Wait a bit first, then force kill
if (kData->osc.thread.isRunning() && ! kData->osc.thread.stop(1000)) // kData->engine->getOptions().oscUiTimeout
if (kData->osc.thread.isRunning() && ! kData->osc.thread.wait(1000)) // kData->engine->getOptions().oscUiTimeout
{ {
carla_stderr("Failed to properly stop Plugin Bridge thread"); carla_stderr("Failed to properly stop Plugin Bridge thread");
kData->osc.thread.terminate(); kData->osc.thread.terminate();
@@ -1242,7 +1242,7 @@ public:


kData->osc.thread.setOscData(bridgeBinary, label, getPluginTypeAsString(fPluginType), shmIdStr); kData->osc.thread.setOscData(bridgeBinary, label, getPluginTypeAsString(fPluginType), shmIdStr);
kData->osc.thread.start(); kData->osc.thread.start();
kData->osc.thread.waitForStarted();
//kData->osc.thread.waitForStarted();
} }


for (int i=0; i < 200; i++) for (int i=0; i < 200; i++)
@@ -1268,7 +1268,7 @@ public:
// unregister so it gets handled properly // unregister so it gets handled properly
registerEnginePlugin(kData->engine, fId, nullptr); registerEnginePlugin(kData->engine, fId, nullptr);


kData->osc.thread.stop();
kData->osc.thread.quit();
// last error was set before // last error was set before
return false; return false;
} }


+ 4
- 2
source/backend/plugin/CarlaPluginThread.hpp View File

@@ -20,13 +20,15 @@


#include "CarlaBackend.hpp" #include "CarlaBackend.hpp"
#include "CarlaString.hpp" #include "CarlaString.hpp"
#include "CarlaThread.hpp"

//#include "CarlaThread.hpp"
#include <QtCore/QThread>


class QProcess; class QProcess;


CARLA_BACKEND_START_NAMESPACE CARLA_BACKEND_START_NAMESPACE


class CarlaPluginThread : public CarlaThread
class CarlaPluginThread : public QThread
{ {
public: public:
enum Mode { enum Mode {


+ 2
- 2
source/backend/plugin/DssiPlugin.cpp View File

@@ -57,7 +57,7 @@ public:
showGui(false); showGui(false);


// Wait a bit first, then force kill // Wait a bit first, then force kill
if (kData->osc.thread.isRunning() && ! kData->osc.thread.stop(kData->engine->getOptions().oscUiTimeout))
if (kData->osc.thread.isRunning() && ! kData->osc.thread.wait(kData->engine->getOptions().oscUiTimeout))
{ {
carla_stderr("DSSI GUI thread still running, forcing termination now"); carla_stderr("DSSI GUI thread still running, forcing termination now");
kData->osc.thread.terminate(); kData->osc.thread.terminate();
@@ -357,7 +357,7 @@ public:
kData->osc.data.free(); kData->osc.data.free();
} }


if (kData->osc.thread.isRunning() && ! kData->osc.thread.stop(kData->engine->getOptions().oscUiTimeout))
if (kData->osc.thread.isRunning() && ! kData->osc.thread.wait(kData->engine->getOptions().oscUiTimeout))
kData->osc.thread.terminate(); kData->osc.thread.terminate();
} }
} }


+ 2
- 2
source/backend/plugin/VstPlugin.cpp View File

@@ -86,7 +86,7 @@ public:
if (fGui.isOsc) if (fGui.isOsc)
{ {
// Wait a bit first, then force kill // Wait a bit first, then force kill
if (kData->osc.thread.isRunning() && ! kData->osc.thread.stop(kData->engine->getOptions().oscUiTimeout))
if (kData->osc.thread.isRunning() && ! kData->osc.thread.wait(kData->engine->getOptions().oscUiTimeout))
{ {
carla_stderr("VST GUI thread still running, forcing termination now"); carla_stderr("VST GUI thread still running, forcing termination now");
kData->osc.thread.terminate(); kData->osc.thread.terminate();
@@ -352,7 +352,7 @@ public:
kData->osc.data.free(); kData->osc.data.free();
} }


if (kData->osc.thread.isRunning() && ! kData->osc.thread.stop(kData->engine->getOptions().oscUiTimeout))
if (kData->osc.thread.isRunning() && ! kData->osc.thread.wait(kData->engine->getOptions().oscUiTimeout))
kData->osc.thread.terminate(); kData->osc.thread.terminate();
} }
} }


+ 2
- 0
source/utils/CarlaThread.hpp View File

@@ -20,6 +20,8 @@


#include "CarlaJuceUtils.hpp" #include "CarlaJuceUtils.hpp"


#error This class is not ready for usage yet

// #define CPP11_THREAD // #define CPP11_THREAD


#ifdef CPP11_THREAD #ifdef CPP11_THREAD


Loading…
Cancel
Save