From f3c4b28239dcfb1fd8a2bb4453a2edd5414555f3 Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Thu, 5 Aug 1993 16:16:41 +0000 Subject: [PATCH] Fixed raising of SCAN_ALARM --- src/db/dbAccess.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/db/dbAccess.c b/src/db/dbAccess.c index 6995031c1..c584342a3 100644 --- a/src/db/dbAccess.c +++ b/src/db/dbAccess.c @@ -220,25 +220,21 @@ long dbProcess(struct dbCommon *precord) if(precord->pact) { struct rset *prset; struct valueDes valueDes; + unsigned short monitor_mask; if(trace && trace_lset==lset) printf("active: %s\n",precord->name); /* raise scan alarm after MAX_LOCK times */ if(precord->stat==SCAN_ALARM) goto all_done; if(precord->lcnt++ !=MAX_LOCK) goto all_done; - if(precord->sevr>=MAJOR_ALARM) goto all_done; - precord->sevr = MAJOR_ALARM; - precord->stat = SCAN_ALARM; - precord->nsev = 0; - precord->nsta = 0; - /* anyone waiting for an event on this record?*/ - if(precord->mlis.count==0) goto all_done; - db_post_events(precord,&precord->stat,DBE_VALUE); - db_post_events(precord,&precord->sevr,DBE_VALUE); + if(precord->sevr>=INVALID_ALARM) goto all_done; + recGblSetSevr(precord,SCAN_ALARM,INVALID_ALARM); + monitor_mask = recGblResetAlarms(precord); + monitor_mask |= DBE_VALUE; prset=(struct rset *)precord->rset; if( prset && prset->get_value ){ (*prset->get_value)(precord,&valueDes); - db_post_events(precord,valueDes.pvalue,DBE_VALUE|DBE_ALARM); + db_post_events(precord,valueDes.pvalue,monitor_mask); } goto all_done; } else precord->lcnt=0;