summaryrefslogtreecommitdiffstats
path: root/src/server/events/Disconnect.cpp
AgeCommit message (Collapse)AuthorFilesLines
2016-10-02Defer graph compilation in atomic bundlesDavid Robillard1-3/+8
This avoids situations like compiling a graph hundreds of times when it is loaded because it has hundreds of nodes and each event triggers a re-compile. This speeds things up dramatically, but exacerbates the theoretical problem of there not being enough time in a cycle to execute a bundle. As far as I can tell, the execute phase of events is very fast, so hundreds or thousands can easily run in a tiny fraction of the process cycle, but this still needs resolution to be truly hard real-time. What probably needs to happen is that all context and state used to process is moved to CompiledGraph and nodes do not access their own fields at all, but have some references into the CompiledGraph. This way, a compiled graph is separate from its "source code", and an old one could continue to be run while a new one is beng applied across several cycles.
2016-10-02Use more efficient std::lock_guard where possibleDavid Robillard1-1/+1
2016-10-02Add parallelism-aware graph traversalDavid Robillard1-1/+1
2016-09-11Remove last vestiges of multiple run contextsDavid Robillard1-3/+3
2016-09-11Clarify connect and disconnect logicDavid Robillard1-3/+4
2016-07-30Add undo supportDavid Robillard1-1/+7
2015-10-26Use a set for providers and dependantsDavid Robillard1-12/+6
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5790 a436a847-0d15-0410-975c-d299462d15a1
2015-10-26Use consistant names for incident portsDavid Robillard1-47/+47
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5789 a436a847-0d15-0410-975c-d299462d15a1
2015-10-24Zero-copy to/from driver ports where possibleDavid Robillard1-14/+21
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5778 a436a847-0d15-0410-975c-d299462d15a1
2015-04-04Update copyright dates.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5653 a436a847-0d15-0410-975c-d299462d15a1
2015-02-08Don't complain about missing ports when deleting things.David Robillard1-2/+5
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5547 a436a847-0d15-0410-975c-d299462d15a1
2015-02-06Remove gthread dependency from engine.David Robillard1-3/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5533 a436a847-0d15-0410-975c-d299462d15a1
2014-01-24Fix various whitespace and formatting issues.David Robillard1-1/+0
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5325 a436a847-0d15-0410-975c-d299462d15a1
2014-01-12Combine port buffers and set state into a single voice object.David Robillard1-8/+8
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5309 a436a847-0d15-0410-975c-d299462d15a1
2013-08-20Remove unused class members.David Robillard1-1/+0
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5156 a436a847-0d15-0410-975c-d299462d15a1
2013-02-02More generic Atom class.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5024 a436a847-0d15-0410-975c-d299462d15a1
2013-01-12Remove Raul::SharedPtr and switch to std::shared_ptr.David Robillard1-6/+6
Use project local short type aliases for shared_ptr and friends. Move Raul::Disposable and Raul::Manageable into Raul::Maid. Use sets to store machina nodes and edges to avoid O(n) searches. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4939 a436a847-0d15-0410-975c-d299462d15a1
2013-01-12Fix connection bug introduced in r4918 (fix #875).David Robillard1-4/+3
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4936 a436a847-0d15-0410-975c-d299462d15a1
2013-01-11Use type safe enumerations.David Robillard1-10/+10
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4918 a436a847-0d15-0410-975c-d299462d15a1
2012-12-29"edge" => "arc".David Robillard1-11/+11
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4897 a436a847-0d15-0410-975c-d299462d15a1
2012-12-21Strip trailing whitespace.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4883 a436a847-0d15-0410-975c-d299462d15a1
2012-12-21Fix memory leaks.David Robillard1-2/+1
Add missing library dependencies. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4880 a436a847-0d15-0410-975c-d299462d15a1
2012-12-21Add Broadcaster::Transfer for scoped recursion-safe reply bundling.David Robillard1-0/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4868 a436a847-0d15-0410-975c-d299462d15a1
2012-08-20Replace several assertions with graceful error handling.David Robillard1-6/+3
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4731 a436a847-0d15-0410-975c-d299462d15a1
2012-08-19Patch => GraphDavid Robillard1-21/+21
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4721 a436a847-0d15-0410-975c-d299462d15a1
2012-08-18Node => BlockDavid Robillard1-22/+22
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4720 a436a847-0d15-0410-975c-d299462d15a1
2012-08-17Implement real logging system, LV2 log extension support, and purge ↵David Robillard1-1/+0
evil/ugly/untranslatable C++ stream printing. Remove coloured log stuff from Raul. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4717 a436a847-0d15-0410-975c-d299462d15a1
2012-08-15Rewrite Raul::Maid and eliminate Raul:List.David Robillard1-2/+2
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4702 a436a847-0d15-0410-975c-d299462d15a1
2012-08-14Replace use of old Raul Table stuff with std::map.David Robillard1-7/+8
Move most Store functionality into Ingen::Store and eliminate EngineStore. Much cleaner delete and move implementations. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4696 a436a847-0d15-0410-975c-d299462d15a1
2012-08-12Remove message context cruft.David Robillard1-6/+6
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4668 a436a847-0d15-0410-975c-d299462d15a1
2012-08-11Vectorizable (by GCC with -ftree-vectorize) mixing and Buffer::set_block().David Robillard1-1/+2
Custom SSE accelerated peak detection when SSE is available at compile time. Less mixing overhead in general. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4651 a436a847-0d15-0410-975c-d299462d15a1
2012-08-10Use the usual semantics for 'end' for Buffer::set_block, which in addition ↵David Robillard1-1/+1
to actually making sense, allows GCC to optimize the loop. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4650 a436a847-0d15-0410-975c-d299462d15a1
2012-07-31Merge AudioBuffer into Buffer and avoid all the casting.David Robillard1-3/+2
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4584 a436a847-0d15-0410-975c-d299462d15a1
2012-07-31Move continuous value setting stuff from AudioBuffer to PortImpl.David Robillard1-1/+2
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4582 a436a847-0d15-0410-975c-d299462d15a1
2012-07-30Shrink events.David Robillard1-12/+10
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4574 a436a847-0d15-0410-975c-d299462d15a1
2012-07-26Report subject with errors to client for more meaningful error messages.David Robillard1-7/+8
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4556 a436a847-0d15-0410-975c-d299462d15a1
2012-06-29Fix crashes caused by events attempting to respond to deleted clients (fix ↵David Robillard1-6/+6
#842). This one mainly manifested when using ingenish from the command line since the client is so short lived. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4503 a436a847-0d15-0410-975c-d299462d15a1
2012-05-22More work on test suite.David Robillard1-16/+6
Clean up, simplify, and shrink event code. Support disconnect_all via Atom protocol. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4432 a436a847-0d15-0410-975c-d299462d15a1
2012-05-14Remove Thread context stuff and add a thread-specific variable class, ↵David Robillard1-1/+1
ThreadVar, which can be used for this and many other things. ClientBroadcaster => Broadcaster. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4405 a436a847-0d15-0410-975c-d299462d15a1
2012-05-12More work towards checking contexts via parameter rather than thread magic.David Robillard1-3/+6
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4376 a436a847-0d15-0410-975c-d299462d15a1
2012-05-12Use compiler checkable ProcessContext parameter rather than runtime context ↵David Robillard1-1/+1
assertions. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4374 a436a847-0d15-0410-975c-d299462d15a1
2012-05-12Remove redundant thread assertions.David Robillard1-2/+0
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4372 a436a847-0d15-0410-975c-d299462d15a1
2012-05-11Add missing includes.David Robillard1-0/+2
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4348 a436a847-0d15-0410-975c-d299462d15a1
2012-05-11"Connection" => "Edge"David Robillard1-18/+16
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4345 a436a847-0d15-0410-975c-d299462d15a1
2012-05-10Work towards translatable strings and a cleaner log interface.David Robillard1-3/+0
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4338 a436a847-0d15-0410-975c-d299462d15a1
2012-04-28Use "tail" and "head" terminology instead of "src_port" and "dst_port".David Robillard1-18/+18
Use the same types for connect() and disconnect() parameters. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4292 a436a847-0d15-0410-975c-d299462d15a1
2012-04-23Localise buffer reference stuff.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4252 a436a847-0d15-0410-975c-d299462d15a1
2012-04-05Fix end namespace comments to match reality.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4143 a436a847-0d15-0410-975c-d299462d15a1
2012-03-27Squeeze blank lines.David Robillard1-1/+0
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4113 a436a847-0d15-0410-975c-d299462d15a1
2012-03-27Switch to AGPL3+.David Robillard1-16/+16
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4111 a436a847-0d15-0410-975c-d299462d15a1