A bug was fixed that was related to dynamically changing lock sets.

The record support put_array_info is called after the a put only if the put is successful.
This commit is contained in:
Marty Kraimer
2001-06-20 14:09:37 +00:00
parent 4aa81c5344
commit cd0cf5f214

View File

@@ -1061,6 +1061,7 @@ long dbPutField(DBADDR *paddr,short dbrType,const void *pbuffer,long nRequest)
*pdbAddr = dbaddr; /*structure copy*/;
plink->value.pv_link.precord = precord;
plink->value.pv_link.pvt = pdbAddr;
dbLockSetRecordLock(pdbAddr->precord);
dbLockSetMerge(precord,pdbAddr->precord);
} else {/*It is a CA link*/
char *pperiod;
@@ -1188,7 +1189,7 @@ long dbPut(DBADDR *paddr,short dbrType,const void *pbuffer,long nRequest)
status=(*dbPutConvertRoutine[dbrType][field_type])
(paddr,pbuffer,nRequest,no_elements,offset);
/* update array info */
if(prset && (prset->put_array_info) ) {
if(prset && (prset->put_array_info) && !status) {
status= (*prset->put_array_info)
(paddr,nRequest);
}