diff options
author | David Robillard <d@drobilla.net> | 2011-09-23 23:51:44 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-09-23 23:51:44 +0000 |
commit | 4cc5c82a87cf2316f425a9ea1de0fb29d0c24c8e (patch) | |
tree | d2b874fb8e7437cf7ea819fa6faca36e1c3ddc9d /src/server/JackDriver.cpp | |
parent | 41f1be0a68676f33dc1d7dfbb32c5d6440ebd4c9 (diff) | |
download | ingen-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.cpp | 16 |
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 |