From 7077ece7f989020eb68af4f88bd430f5ff7b4473 Mon Sep 17 00:00:00 2001 From: Dirk Zimoch Date: Mon, 2 Sep 2024 13:45:25 +0200 Subject: [PATCH] Send DBE_PROPERTY events before DBE_VALUE | DBE_LOG events to allow clients to update their formatting etc in time --- modules/database/src/ioc/db/dbAccess.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/database/src/ioc/db/dbAccess.c b/modules/database/src/ioc/db/dbAccess.c index 8af1d92fc..a6c040d45 100644 --- a/modules/database/src/ioc/db/dbAccess.c +++ b/modules/database/src/ioc/db/dbAccess.c @@ -1390,6 +1390,11 @@ long dbPut(DBADDR *paddr, short dbrType, } } + /* Post property updates before second dbPutSpecial */ + /* which may post DBE_VALUE and/or DBE_LOG events */ + if (propertyUpdate && !status) + db_post_events(precord, NULL, DBE_PROPERTY); + /* Always do special processing if needed */ if (special) { long status2 = dbPutSpecial(paddr, 1); @@ -1406,8 +1411,6 @@ long dbPut(DBADDR *paddr, short dbrType, if (precord->mlis.count && !(isValueField && pfldDes->process_passive)) db_post_events(precord, pfieldsave, DBE_VALUE | DBE_LOG); - if (propertyUpdate) - db_post_events(precord, NULL, DBE_PROPERTY); done: paddr->pfield = pfieldsave; return status;