Skip to content
Snippets Groups Projects
Commit 84958c71 authored by Christoph Kampmeyer's avatar Christoph Kampmeyer
Browse files

wip: Fanouts call interrupt only with wait_for_new_data set

parent e2fff295
No related branches found
No related tags found
No related merge requests found
......@@ -43,7 +43,9 @@ namespace ChimeraTK {
void interrupt() override {
// call the interrut sequences of the fan out (interrupts for fan input and all outputs), and the ndRegisterAccessor
FanOut<UserType>::interrupt();
ChimeraTK::NDRegisterAccessor<UserType>::interrupt();
if(this->_accessModeFlags.has(AccessMode::wait_for_new_data)) {
ChimeraTK::NDRegisterAccessor<UserType>::interrupt();
}
}
protected:
......
......@@ -51,10 +51,14 @@ namespace ChimeraTK {
// interrupt the input and all slaves
virtual void interrupt() {
if(impl) {
impl->interrupt();
if(impl->getAccessModeFlags().has(AccessMode::wait_for_new_data)) {
impl->interrupt();
}
}
for(auto& slave : slaves) {
slave->interrupt();
if(slave->getAccessModeFlags().has(AccessMode::wait_for_new_data)) {
slave->interrupt();
}
}
}
......
......@@ -222,7 +222,9 @@ namespace ChimeraTK {
void interrupt() override {
// call the interrut sequences of the fan out (interrupts for fan input and all outputs), and the ndRegisterAccessor
FanOut<UserType>::interrupt();
ChimeraTK::NDRegisterAccessor<UserType>::interrupt();
if(this->_accessModeFlags.has(AccessMode::wait_for_new_data)) {
ChimeraTK::NDRegisterAccessor<UserType>::interrupt();
}
}
protected:
......
......@@ -49,7 +49,9 @@ namespace ChimeraTK {
void deactivate() override {
if(_thread.joinable()) {
_thread.interrupt();
externalTrigger->interrupt();
if(externalTrigger->getAccessModeFlags().has(AccessMode::wait_for_new_data)) {
externalTrigger->interrupt();
}
_deviceModule.notify();
_thread.join();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment