diff options
author | David Robillard <d@drobilla.net> | 2008-08-13 23:12:52 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-08-13 23:12:52 +0000 |
commit | ef22788409473e8fbc04b41c90027bbd7f34a9df (patch) | |
tree | 1e12db1e7eeb473d8678fb8f7b47a7d52af4c58d /src/libs/engine/PatchImpl.hpp | |
parent | 6d9179c30b56bb7be97e702951c393727d96cf05 (diff) | |
download | ingen-ef22788409473e8fbc04b41c90027bbd7f34a9df.tar.gz ingen-ef22788409473e8fbc04b41c90027bbd7f34a9df.tar.bz2 ingen-ef22788409473e8fbc04b41c90027bbd7f34a9df.zip |
Fix race condition resulting in duplicate connections if several identical requests come in rapid succession.
git-svn-id: http://svn.drobilla.net/lad/ingen@1359 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/PatchImpl.hpp')
-rw-r--r-- | src/libs/engine/PatchImpl.hpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libs/engine/PatchImpl.hpp b/src/libs/engine/PatchImpl.hpp index 209062be..3629f6e5 100644 --- a/src/libs/engine/PatchImpl.hpp +++ b/src/libs/engine/PatchImpl.hpp @@ -110,6 +110,8 @@ public: void add_connection(Connections::Node* c) { _connections.push_back(c); } Connections::Node* remove_connection(const PortImpl* src_port, const PortImpl* dst_port); + bool has_connection(const PortImpl* src_port, const PortImpl* dst_port) const; + CompiledPatch* compiled_patch() { return _compiled_patch; } void compiled_patch(CompiledPatch* cp) { _compiled_patch = cp; } @@ -134,7 +136,7 @@ private: Engine& _engine; uint32_t _internal_poly; CompiledPatch* _compiled_patch; ///< Accessed in audio thread only - Connections _connections; ///< Accessed in audio thread only + Connections _connections; ///< Accessed in preprocessing thread only List<PortImpl*> _input_ports; ///< Accessed in preprocessing thread only List<PortImpl*> _output_ports; ///< Accessed in preprocessing thread only Nodes _nodes; ///< Accessed in preprocessing thread only |