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->thread.startNow();

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

return true;
}


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

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

const CarlaMutex::ScopedLocker sl(&fMutex);

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



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

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

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

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

CARLA_BACKEND_START_NAMESPACE

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

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


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

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

#include <QtCore/QThread>

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

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

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

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

#ifdef WANT_ZYNADDSUBFX_UI


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

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

// 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");
kData->osc.thread.terminate();
@@ -1242,7 +1242,7 @@ public:

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

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

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


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

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

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

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

class QProcess;

CARLA_BACKEND_START_NAMESPACE

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


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

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

// 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");
kData->osc.thread.terminate();
@@ -357,7 +357,7 @@ public:
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();
}
}


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

@@ -86,7 +86,7 @@ public:
if (fGui.isOsc)
{
// 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");
kData->osc.thread.terminate();
@@ -352,7 +352,7 @@ public:
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();
}
}


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

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

#include "CarlaJuceUtils.hpp"

#error This class is not ready for usage yet

// #define CPP11_THREAD

#ifdef CPP11_THREAD


Loading…
Cancel
Save