dbAccess: Make dbPut() always do special processing after put

If the value gets rejected by a put to SCAN, we must still call
dbPutSpecial() to add the record back onto its old scan thread.
This commit is contained in:
Andrew Johnson
2015-08-10 15:03:48 -05:00
parent d7b3293ba3
commit ef7399159c

View File

@@ -1460,14 +1460,16 @@ long epicsShareAPI dbPut(DBADDR *paddr, short dbrType,
status = prset->put_array_info(paddr, nRequest);
}
}
if (status) return status;
/* check if special processing is required */
/* Always do special processing if needed */
if (special) {
status = dbPutSpecial(paddr,1);
if (status) return status;
long status2 = dbPutSpecial(paddr,1);
if (status2) return status2;
}
/* If the put failed, return the error */
if (status) return status;
/* Propagate monitor events for this field, */
/* unless the field field is VAL and PP is true. */
pfldDes = paddr->pfldDes;