summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/PatchImpl.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-08-13 23:12:52 +0000
committerDavid Robillard <d@drobilla.net>2008-08-13 23:12:52 +0000
commitef22788409473e8fbc04b41c90027bbd7f34a9df (patch)
tree1e12db1e7eeb473d8678fb8f7b47a7d52af4c58d /src/libs/engine/PatchImpl.hpp
parent6d9179c30b56bb7be97e702951c393727d96cf05 (diff)
downloadingen-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.hpp4
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