25 #include "DspCircuitThread.h"
26 #include "DspComponent.h"
30 DspCircuitThread::DspCircuitThread()
31 : _components( NULL ),
40 DspCircuitThread::~DspCircuitThread()
47 void DspCircuitThread::Initialise( std::vector< DspComponent* >* components,
unsigned short threadNo )
49 _components = components;
55 void DspCircuitThread::Start( Priority priority )
63 DspThread::Start( priority );
69 void DspCircuitThread::Stop()
73 while( _stopped !=
true )
76 _resumeCondt.WakeAll();
85 void DspCircuitThread::Sync()
91 _syncCondt.Wait( _resumeMutex );
94 _resumeMutex.Unlock();
99 void DspCircuitThread::Resume()
106 _resumeCondt.WakeAll();
108 _resumeMutex.Unlock();
113 void DspCircuitThread::_Run()
115 if( _components != NULL )
123 _syncCondt.WakeAll();
127 _resumeCondt.Wait( _resumeMutex );
131 _resumeMutex.Unlock();
135 for(
unsigned short i = 0; i < _components->size(); i++ )
137 ( *_components )[i]->ThreadTick( _threadNo );
139 for(
unsigned short i = 0; i < _components->size(); i++ )
141 ( *_components )[i]->ThreadReset( _threadNo );