summaryrefslogtreecommitdiffstats
path: root/src/server/JackDriver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/JackDriver.cpp')
-rw-r--r--src/server/JackDriver.cpp20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/server/JackDriver.cpp b/src/server/JackDriver.cpp
index 246d6fdb..2e2f7c0c 100644
--- a/src/server/JackDriver.cpp
+++ b/src/server/JackDriver.cpp
@@ -186,7 +186,6 @@ JackPort::post_process(ProcessContext& context)
JackDriver::JackDriver(Engine& engine)
: _engine(engine)
- , _jack_thread(NULL)
, _sem(0)
, _flag(0)
, _client(NULL)
@@ -206,8 +205,6 @@ JackDriver::~JackDriver()
if (_client)
jack_client_close(_client);
-
- delete _jack_thread;
}
bool
@@ -324,8 +321,7 @@ JackDriver::deactivate()
_client = NULL;
}
- delete _jack_thread;
- _jack_thread = NULL;
+ _jack_threads.clear();
LOG(info) << "Deactivated Jack client" << endl;
}
@@ -487,13 +483,10 @@ JackDriver::_process_cb(jack_nframes_t nframes)
void
JackDriver::_thread_init_cb()
{
- if (_jack_thread) {
- delete _jack_thread;
- }
-
- _jack_thread = &Thread::get();
- _jack_thread->set_name("Jack");
- _jack_thread->set_context(THREAD_PROCESS);
+ Raul::Thread* thread = &Thread::get();
+ thread->set_name("Jack");
+ thread->set_context(THREAD_PROCESS);
+ _jack_threads.push_back(SharedPtr<Raul::Thread>(thread));
}
void
@@ -501,8 +494,7 @@ JackDriver::_shutdown_cb()
{
LOG(info) << "Jack shutdown. Exiting." << endl;
_is_activated = false;
- delete _jack_thread;
- _jack_thread = NULL;
+ _jack_threads.clear();
_client = NULL;
}