diff --git a/CHANGES b/CHANGES
index 8f8274fa..59ebb0c1 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,8 @@
+v.11.2.0 (05 April 2024)
+ - Updated fast_any submodule (incl. README update).
+ - Renamed _ReleaseNextThread() to _ReleaseNextBuffer().
+ - Post-fixed all non-series entities with "Parallel".
+
v.11.1.3 (30 March 2024)
- Added componentsMap reserve() in Circuit::_Optimize().
- Slightly optimized Component::ConnectInput().
diff --git a/docs/Doxyfile b/docs/Doxyfile
index 09c59fe4..5acb5819 100644
--- a/docs/Doxyfile
+++ b/docs/Doxyfile
@@ -32,7 +32,7 @@ PROJECT_NAME = DSPatch
# This could be handy for archiving the generated documentation or
# if some version control system is used.
-PROJECT_NUMBER = v.11.1.3
+PROJECT_NUMBER = v.11.2.0
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer
diff --git a/docs/html/_circuit_8h_source.html b/docs/html/_circuit_8h_source.html
index 301d0f79..3e56450b 100644
--- a/docs/html/_circuit_8h_source.html
+++ b/docs/html/_circuit_8h_source.html
@@ -22,7 +22,7 @@
|
- DSPatch v.11.1.3
+ DSPatch v.11.2.0
|
@@ -346,152 +346,152 @@
-
-
-
-
-
-
-
-
- 302 for (
auto component : *_components )
-
- 304 component->TickSeries( _bufferNo );
-
-
-
-
-
-
-
- 312 std::vector<DSPatch::Component*>* _components =
nullptr;
-
-
- 315 bool _gotSync =
false;
- 316 std::mutex _syncMutex;
- 317 std::condition_variable _resumeCondt, _syncCondt;
-
-
- 320 class ParallelCircuitThread final
-
-
- 323 ParallelCircuitThread(
const ParallelCircuitThread& ) =
delete;
- 324 ParallelCircuitThread& operator=(
const ParallelCircuitThread& ) =
delete;
-
- 326 inline ParallelCircuitThread() =
default;
-
-
- 329 inline ParallelCircuitThread( ParallelCircuitThread&& )
-
-
-
- 333 inline ~ParallelCircuitThread()
-
-
-
-
- 338 inline void Start( std::vector<DSPatch::Component*>* components,
int bufferNo,
int threadNo,
int threadCount )
-
- 340 _components = components;
- 341 _bufferNo = bufferNo;
- 342 _threadNo = threadNo;
- 343 _threadCount = threadCount;
-
-
-
-
- 348 _thread = std::thread( &ParallelCircuitThread::_Run,
this );
-
-
-
-
-
-
-
-
- 357 if ( _thread.joinable() )
-
-
-
-
-
-
-
- 365 std::unique_lock<std::mutex> lock( _syncMutex );
-
-
-
- 369 _syncCondt.wait( lock );
-
-
-
-
-
-
- 376 _resumeCondt.notify_all();
- 377 std::this_thread::yield();
-
-
-
-
-
-
- 384 SetThreadPriority( GetCurrentThread(), THREAD_PRIORITY_HIGHEST );
-
- 386 sched_param sch_params;
- 387 sch_params.sched_priority = sched_get_priority_max( SCHED_RR );
- 388 pthread_setschedparam( pthread_self(), SCHED_RR, &sch_params );
-
-
-
-
-
-
-
- 396 std::unique_lock<std::mutex> lock( _syncMutex );
-
-
- 399 _syncCondt.notify_all();
- 400 _resumeCondt.wait( lock );
-
-
-
-
-
- 406 for (
auto it = _components->begin() + _threadNo; it < _components->end(); it += _threadCount )
-
- 408 ( *it )->TickParallel( _bufferNo );
-
-
-
-
-
-
-
- 416 std::vector<DSPatch::Component*>* _components =
nullptr;
-
-
- 419 int _threadCount = 0;
-
- 421 bool _gotSync =
false;
- 422 std::mutex _syncMutex;
- 423 std::condition_variable _resumeCondt, _syncCondt;
-
-
-
-
- 428 int _bufferCount = 0;
- 429 int _threadCount = 0;
- 430 int _currentBuffer = 0;
-
- 432 AutoTickThread _autoTickThread;
-
- 434 std::vector<DSPatch::Component*> _components;
- 435 std::set<DSPatch::Component::SPtr> _componentsSet;
+
+
+
+
+
+
+
+ 301 for (
auto component : *_components )
+
+ 303 component->Tick( _bufferNo );
+
+
+
+
+
+
+
+ 311 std::vector<DSPatch::Component*>* _components =
nullptr;
+
+
+ 314 bool _gotSync =
false;
+ 315 std::mutex _syncMutex;
+ 316 std::condition_variable _resumeCondt, _syncCondt;
+
+
+ 319 class CircuitThreadParallel final
+
+
+ 322 CircuitThreadParallel(
const CircuitThreadParallel& ) =
delete;
+ 323 CircuitThreadParallel& operator=(
const CircuitThreadParallel& ) =
delete;
+
+ 325 inline CircuitThreadParallel() =
default;
+
+
+ 328 inline CircuitThreadParallel( CircuitThreadParallel&& )
+
+
+
+ 332 inline ~CircuitThreadParallel()
+
+
+
+
+ 337 inline void Start( std::vector<DSPatch::Component*>* components,
int bufferNo,
int threadNo,
int threadCount )
+
+ 339 _components = components;
+ 340 _bufferNo = bufferNo;
+ 341 _threadNo = threadNo;
+ 342 _threadCount = threadCount;
+
+
+
+
+ 347 _thread = std::thread( &CircuitThreadParallel::_Run,
this );
+
+
+
+
+
+
+
+
+ 356 if ( _thread.joinable() )
+
+
+
+
+
+
+
+ 364 std::unique_lock<std::mutex> lock( _syncMutex );
+
+
+
+ 368 _syncCondt.wait( lock );
+
+
+
+
+
+
+ 375 _resumeCondt.notify_all();
+ 376 std::this_thread::yield();
+
+
+
+
+
+
+ 383 SetThreadPriority( GetCurrentThread(), THREAD_PRIORITY_HIGHEST );
+
+ 385 sched_param sch_params;
+ 386 sch_params.sched_priority = sched_get_priority_max( SCHED_RR );
+ 387 pthread_setschedparam( pthread_self(), SCHED_RR, &sch_params );
+
+
+
+
+
+
+
+ 395 std::unique_lock<std::mutex> lock( _syncMutex );
+
+
+ 398 _syncCondt.notify_all();
+ 399 _resumeCondt.wait( lock );
+
+
+
+
+
+ 405 for (
auto it = _components->begin() + _threadNo; it < _components->end(); it += _threadCount )
+
+ 407 ( *it )->TickParallel( _bufferNo );
+
+
+
+
+
+
+
+ 415 std::vector<DSPatch::Component*>* _components =
nullptr;
+
+
+ 418 int _threadCount = 0;
+
+ 420 bool _gotSync =
false;
+ 421 std::mutex _syncMutex;
+ 422 std::condition_variable _resumeCondt, _syncCondt;
+
+
+
+
+ 427 int _bufferCount = 0;
+ 428 int _threadCount = 0;
+ 429 int _currentBuffer = 0;
+
+ 431 AutoTickThread _autoTickThread;
+
+ 433 std::set<DSPatch::Component::SPtr> _componentsSet;
+
+ 435 std::vector<DSPatch::Component*> _components;
436 std::vector<DSPatch::Component*> _componentsParallel;
438 std::vector<CircuitThread> _circuitThreads;
- 439 std::vector<std::vector<ParallelCircuitThread>> _parallelCircuitThreads;
+ 439 std::vector<std::vector<CircuitThreadParallel>> _circuitThreadsParallel;
441 bool _circuitDirty =
false;
@@ -689,7 +689,7 @@
634 _threadCount = threadCount;
- 637 for (
auto& circuitThreads : _parallelCircuitThreads )
+ 637 for (
auto& circuitThreads : _circuitThreadsParallel )
639 for (
auto& circuitThread : circuitThreads )
@@ -700,20 +700,20 @@
646 if ( _threadCount == 0 )
- 648 _parallelCircuitThreads.resize( 0 );
+ 648 _circuitThreadsParallel.resize( 0 );
649 SetBufferCount( _bufferCount );
- 653 _parallelCircuitThreads.resize( _bufferCount == 0 ? 1 : _bufferCount );
- 654 for (
auto& circuitThread : _parallelCircuitThreads )
+ 653 _circuitThreadsParallel.resize( _bufferCount == 0 ? 1 : _bufferCount );
+ 654 for (
auto& circuitThread : _circuitThreadsParallel )
656 circuitThread.resize( _threadCount );
- 661 for (
auto& circuitThreads : _parallelCircuitThreads )
+ 661 for (
auto& circuitThreads : _circuitThreadsParallel )
664 for (
auto& circuitThread : circuitThreads )
@@ -747,7 +747,7 @@
693 for (
auto component : _components )
- 695 component->TickSeries( 0 );
+ 695 component->Tick( 0 );
@@ -756,7 +756,7 @@
702 else if ( _threadCount != 0 )
- 704 auto& circuitThreads = _parallelCircuitThreads[_currentBuffer];
+ 704 auto& circuitThreads = _circuitThreadsParallel[_currentBuffer];
706 for (
auto& circuitThread : circuitThreads )
@@ -785,7 +785,7 @@
731 circuitThread.Sync();
- 733 for (
auto& circuitThreads : _parallelCircuitThreads )
+ 733 for (
auto& circuitThreads : _circuitThreadsParallel )
735 for (
auto& circuitThread : circuitThreads )
@@ -835,7 +835,7 @@
781 for (
auto component : _components )
- 783 component->ScanSeries( orderedComponents );
+ 783 component->Scan( orderedComponents );
785 for (
auto component : _components )
diff --git a/docs/html/_component_8h_source.html b/docs/html/_component_8h_source.html
index f3b394a4..5f50df9e 100644
--- a/docs/html/_component_8h_source.html
+++ b/docs/html/_component_8h_source.html
@@ -22,7 +22,7 @@
|
- DSPatch v.11.1.3
+ DSPatch v.11.2.0
|
@@ -151,10 +151,10 @@
93 void SetBufferCount(
int bufferCount,
int startBuffer );
94 int GetBufferCount()
const;
- 96 void TickSeries(
int bufferNo );
+ 96 void Tick(
int bufferNo );
97 void TickParallel(
int bufferNo );
- 99 void ScanSeries( std::vector<Component*>& components );
+ 99 void Scan( std::vector<Component*>& components );
100 void ScanParallel( std::vector<std::vector<DSPatch::Component*>>& componentsMap,
int& scanPosition );
@@ -213,8 +213,8 @@
- 158 void _WaitForRelease(
int threadNo );
- 159 void _ReleaseNextThread(
int threadNo );
+ 158 void _WaitForRelease(
int bufferNo );
+ 159 void _ReleaseNextBuffer(
int bufferNo );
161 void _GetOutput(
int bufferNo,
int fromOutput,
int toInput,
DSPatch::SignalBus& toBus );
162 void _GetOutputParallel(
int bufferNo,
int fromOutput,
int toInput,
DSPatch::SignalBus& toBus );
@@ -414,7 +414,7 @@
356 return (
int)_inputBuses.size();
- 359inline void Component::TickSeries(
int bufferNo )
+ 359inline void Component::Tick(
int bufferNo )
361 auto& inputBus = _inputBuses[bufferNo];
362 auto& outputBus = _outputBuses[bufferNo];
@@ -440,7 +440,7 @@
382 Process_( inputBus, outputBus );
- 385 _ReleaseNextThread( bufferNo );
+ 385 _ReleaseNextBuffer( bufferNo );
@@ -473,7 +473,7 @@
415 Process_( inputBus, outputBus );
- 418 _ReleaseNextThread( bufferNo );
+ 418 _ReleaseNextBuffer( bufferNo );
@@ -492,7 +492,7 @@
- 437inline void Component::ScanSeries( std::vector<Component*>& components )
+ 437inline void Component::Scan( std::vector<Component*>& components )
440 if ( _scanPosition != -1 )
@@ -506,7 +506,7 @@
448 for (
const auto& wire : _inputWires )
- 451 wire.fromComponent->ScanSeries( components );
+ 451 wire.fromComponent->Scan( components );
454 components.emplace_back(
this );
@@ -577,20 +577,20 @@
- 522inline void Component::_WaitForRelease(
int threadNo )
+ 522inline void Component::_WaitForRelease(
int bufferNo )
- 524 _releaseFlags[threadNo].WaitAndClear();
+ 524 _releaseFlags[bufferNo].WaitAndClear();
- 527inline void Component::_ReleaseNextThread(
int threadNo )
+ 527inline void Component::_ReleaseNextBuffer(
int bufferNo )
- 529 if ( ++threadNo == _bufferCount )
+ 529 if ( ++bufferNo == _bufferCount )
531 _releaseFlags[0].Set();
- 535 _releaseFlags[threadNo].Set();
+ 535 _releaseFlags[bufferNo].Set();
diff --git a/docs/html/_d_s_patch_8h_source.html b/docs/html/_d_s_patch_8h_source.html
index 3a3b8091..61e5d7cc 100644
--- a/docs/html/_d_s_patch_8h_source.html
+++ b/docs/html/_d_s_patch_8h_source.html
@@ -22,7 +22,7 @@
|
- DSPatch v.11.1.3
+ DSPatch v.11.2.0
|
diff --git a/docs/html/_plugin_8h_source.html b/docs/html/_plugin_8h_source.html
index acf75e42..4d8fa459 100644
--- a/docs/html/_plugin_8h_source.html
+++ b/docs/html/_plugin_8h_source.html
@@ -22,7 +22,7 @@
|
- DSPatch v.11.1.3
+ DSPatch v.11.2.0
|
diff --git a/docs/html/_signal_bus_8h_source.html b/docs/html/_signal_bus_8h_source.html
index 344ed75c..b92570e6 100644
--- a/docs/html/_signal_bus_8h_source.html
+++ b/docs/html/_signal_bus_8h_source.html
@@ -22,7 +22,7 @@
|
- DSPatch v.11.1.3
+ DSPatch v.11.2.0
|
diff --git a/docs/html/annotated.html b/docs/html/annotated.html
index 147d98ee..6637c2f1 100644
--- a/docs/html/annotated.html
+++ b/docs/html/annotated.html
@@ -22,7 +22,7 @@
|
- DSPatch v.11.1.3
+ DSPatch v.11.2.0
|
diff --git a/docs/html/class_d_s_patch_1_1_circuit-members.html b/docs/html/class_d_s_patch_1_1_circuit-members.html
index 7625caa7..4062d8f1 100644
--- a/docs/html/class_d_s_patch_1_1_circuit-members.html
+++ b/docs/html/class_d_s_patch_1_1_circuit-members.html
@@ -22,7 +22,7 @@
|
- DSPatch v.11.1.3
+ DSPatch v.11.2.0
|
diff --git a/docs/html/class_d_s_patch_1_1_circuit.html b/docs/html/class_d_s_patch_1_1_circuit.html
index b3c77b7e..2645e665 100644
--- a/docs/html/class_d_s_patch_1_1_circuit.html
+++ b/docs/html/class_d_s_patch_1_1_circuit.html
@@ -22,7 +22,7 @@
|
- DSPatch v.11.1.3
+ DSPatch v.11.2.0
|
diff --git a/docs/html/class_d_s_patch_1_1_component-members.html b/docs/html/class_d_s_patch_1_1_component-members.html
index 35b87969..2867d0bc 100644
--- a/docs/html/class_d_s_patch_1_1_component-members.html
+++ b/docs/html/class_d_s_patch_1_1_component-members.html
@@ -22,7 +22,7 @@
|
- DSPatch v.11.1.3
+ DSPatch v.11.2.0
|
@@ -95,14 +95,14 @@
operator=(const Component &)=delete (defined in DSPatch::Component) | DSPatch::Component | |
Process_(SignalBus &, SignalBus &)=0 (defined in DSPatch::Component) | DSPatch::Component | inlineprotectedpure virtual |
ProcessOrder enum name (defined in DSPatch::Component) | DSPatch::Component | |
- ScanParallel(std::vector< std::vector< DSPatch::Component * > > &componentsMap, int &scanPosition) (defined in DSPatch::Component) | DSPatch::Component | inline |
- ScanSeries(std::vector< Component * > &components) (defined in DSPatch::Component) | DSPatch::Component | inline |
+ Scan(std::vector< Component * > &components) (defined in DSPatch::Component) | DSPatch::Component | inline |
+ ScanParallel(std::vector< std::vector< DSPatch::Component * > > &componentsMap, int &scanPosition) (defined in DSPatch::Component) | DSPatch::Component | inline |
SetBufferCount(int bufferCount, int startBuffer) (defined in DSPatch::Component) | DSPatch::Component | inline |
SetInputCount_(int inputCount, const std::vector< std::string > &inputNames={}) (defined in DSPatch::Component) | DSPatch::Component | inlineprotected |
SetOutputCount_(int outputCount, const std::vector< std::string > &outputNames={}) (defined in DSPatch::Component) | DSPatch::Component | inlineprotected |
SPtr typedef (defined in DSPatch::Component) | DSPatch::Component | |
- TickParallel(int bufferNo) (defined in DSPatch::Component) | DSPatch::Component | inline |
- TickSeries(int bufferNo) (defined in DSPatch::Component) | DSPatch::Component | inline |
+ Tick(int bufferNo) (defined in DSPatch::Component) | DSPatch::Component | inline |
+ TickParallel(int bufferNo) (defined in DSPatch::Component) | DSPatch::Component | inline |
~Component() (defined in DSPatch::Component) | DSPatch::Component | inlinevirtual |
diff --git a/docs/html/class_d_s_patch_1_1_component.html b/docs/html/class_d_s_patch_1_1_component.html
index 6d686b38..e7aaff88 100644
--- a/docs/html/class_d_s_patch_1_1_component.html
+++ b/docs/html/class_d_s_patch_1_1_component.html
@@ -22,7 +22,7 @@
|
- DSPatch v.11.1.3
+ DSPatch v.11.2.0
|
@@ -128,12 +128,12 @@
|
int | GetBufferCount () const |
|
-void | TickSeries (int bufferNo) |
- |
+void | Tick (int bufferNo) |
+ |
void | TickParallel (int bufferNo) |
|
-void | ScanSeries (std::vector< Component * > &components) |
- |
+void | Scan (std::vector< Component * > &components) |
+ |
void | ScanParallel (std::vector< std::vector< DSPatch::Component * > > &componentsMap, int &scanPosition) |
|
void | EndScan () |
@@ -521,8 +521,8 @@