summaryrefslogtreecommitdiffstats
path: root/src/server/JackDriver.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-09-23 23:51:44 +0000
committerDavid Robillard <d@drobilla.net>2011-09-23 23:51:44 +0000
commit4cc5c82a87cf2316f425a9ea1de0fb29d0c24c8e (patch)
treed2b874fb8e7437cf7ea819fa6faca36e1c3ddc9d /src/server/JackDriver.cpp
parent41f1be0a68676f33dc1d7dfbb32c5d6440ebd4c9 (diff)
downloadingen-4cc5c82a87cf2316f425a9ea1de0fb29d0c24c8e.tar.gz
ingen-4cc5c82a87cf2316f425a9ea1de0fb29d0c24c8e.tar.bz2
ingen-4cc5c82a87cf2316f425a9ea1de0fb29d0c24c8e.zip
Fix memory leaks and errors.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3482 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/JackDriver.cpp')
-rw-r--r--src/server/JackDriver.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/server/JackDriver.cpp b/src/server/JackDriver.cpp
index cc258fb3..42e9f78a 100644
--- a/src/server/JackDriver.cpp
+++ b/src/server/JackDriver.cpp
@@ -206,6 +206,8 @@ JackDriver::~JackDriver()
if (_client)
jack_client_close(_client);
+
+ delete _jack_thread;
}
bool
@@ -322,7 +324,9 @@ JackDriver::deactivate()
_client = NULL;
}
- _jack_thread->stop();
+ delete _jack_thread;
+ _jack_thread = NULL;
+
LOG(info) << "Deactivated Jack client" << endl;
}
}
@@ -483,11 +487,13 @@ JackDriver::_process_cb(jack_nframes_t nframes)
void
JackDriver::_thread_init_cb()
{
- // Initialize thread specific data
- _jack_thread = Thread::create_for_this_thread("Jack");
- assert(&Thread::get() == _jack_thread);
+ if (_jack_thread) {
+ delete _jack_thread;
+ }
+
+ _jack_thread = &Thread::get();
+ _jack_thread->set_name("Jack");
_jack_thread->set_context(THREAD_PROCESS);
- ThreadManager::assert_thread(THREAD_PROCESS);
}
void