RPRO/PUTF also handle self link case

This commit is contained in:
Michael Davidsaver
2019-02-02 15:34:19 -08:00
parent e860617389
commit 62c11c22c9
3 changed files with 27 additions and 3 deletions
+2 -2
View File
@@ -387,7 +387,7 @@ static long processTarget(dbCommon *psrc, dbCommon *pdst)
char context[40] = "";
int trace = dbAccessDebugPUTF && *dbLockSetAddrTrace(psrc);
int srcset = dbRec2Pvt(psrc)->procThread==NULL;
int dstset = dbRec2Pvt(pdst)->procThread==NULL;
int dstset = psrc!=pdst && dbRec2Pvt(pdst)->procThread==NULL;
long status;
epicsUInt8 pact = psrc->pact;
epicsThreadId self = epicsThreadGetIdSelf();
@@ -411,7 +411,7 @@ static long processTarget(dbCommon *psrc, dbCommon *pdst)
pdst->putf = psrc->putf;
}
else if (psrc->putf && dbRec2Pvt(pdst)->procThread!=self) {
else if (psrc->putf && dstset) {
/* The dst record is busy (awaiting async reprocessing),
* not being processed recursively by us, and
* we were originally triggered by a call to dbPutField(),