void SignalBase::trigger(const GenericFunctionParameters& params, MetaCallType callType) { if (!_p) return; if (_p->triggerOverride) _p->triggerOverride(params, callType); else callSubscribers(params, callType); }
bool Channel::processMonitorElement() { //epics::pvData::Lock lock(monitorElementProcessingMutex); if (monitorThreadDone) { return true; } // Handle possible exceptions while retrieving data from empty queue. try { PvObject pvObject = getMonitorRequester()->getQueuedPvObject(getTimeout()); callSubscribers(pvObject); } catch (const ChannelTimeout& ex) { // Ignore, no changes received. } catch (const std::exception& ex) { // Not good. logger.error("Exception caught in monitor thread: %s", ex.what()); } return false; }