diff --git a/src/pvAccess/monitorFactory.cpp b/src/pvAccess/monitorFactory.cpp index c467c50..2e9e7e5 100644 --- a/src/pvAccess/monitorFactory.cpp +++ b/src/pvAccess/monitorFactory.cpp @@ -292,6 +292,12 @@ void MonitorLocal::dataPut(PVRecordFieldPtr const & pvRecordField) { cout << "MonitorLocal::dataPut(pvRecordField)" << endl; } + // If this record field is the master field, and the master field was not + // requested, we do not proceed with copy + bool isMasterField = pvRecordField->getPVRecord()->getPVStructure()->getFieldOffset()==0; + if (isMasterField && !pvCopy->isMasterFieldRequested()) { + return; + } if(state!=active) return; { Lock xx(mutex);