diff options
author | David Robillard <d@drobilla.net> | 2011-10-09 20:54:18 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-10-09 20:54:18 +0000 |
commit | 64d33fe4054c31d2d22e251293058780ec8fbf98 (patch) | |
tree | 1d9f7748be001b48a0b0a139314930890c9fb8a0 /src/server/JackDriver.hpp | |
parent | ca12acb6cb9b1f7618b88f2c95efd8ab275e1f57 (diff) | |
download | ingen-64d33fe4054c31d2d22e251293058780ec8fbf98.tar.gz ingen-64d33fe4054c31d2d22e251293058780ec8fbf98.tar.bz2 ingen-64d33fe4054c31d2d22e251293058780ec8fbf98.zip |
Fix memory errors in Jack2 caused by jack creating several threads.
This is not really correct since Ingen assumes any jack created thread
is the process thread. Probably not harmful, though it would certainly
be nice to know (in code) what the role and properties of these other
threads are...
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3539 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/JackDriver.hpp')
-rw-r--r-- | src/server/JackDriver.hpp | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/server/JackDriver.hpp b/src/server/JackDriver.hpp index 5439c95c..d39319ba 100644 --- a/src/server/JackDriver.hpp +++ b/src/server/JackDriver.hpp @@ -20,6 +20,7 @@ #include "ingen-config.h" +#include <list> #include <string> #include <jack/jack.h> @@ -161,20 +162,20 @@ private: void _session_cb(jack_session_event_t* event); #endif - Engine& _engine; - Raul::Thread* _jack_thread; - Raul::Semaphore _sem; - Raul::AtomicInt _flag; - jack_client_t* _client; - jack_nframes_t _block_length; - jack_nframes_t _sample_rate; - uint32_t _midi_event_type; - bool _is_activated; - jack_position_t _position; - jack_transport_state_t _transport_state; - Raul::List<JackPort*> _ports; - ProcessContext _process_context; - PatchImpl* _root_patch; + Engine& _engine; + std::list< SharedPtr<Raul::Thread> > _jack_threads; + Raul::Semaphore _sem; + Raul::AtomicInt _flag; + jack_client_t* _client; + jack_nframes_t _block_length; + jack_nframes_t _sample_rate; + uint32_t _midi_event_type; + bool _is_activated; + jack_position_t _position; + jack_transport_state_t _transport_state; + Raul::List<JackPort*> _ports; + ProcessContext _process_context; + PatchImpl* _root_patch; }; } // namespace Server |