putNotifyBlocked no longer necessary

This commit is contained in:
Marty Kraimer
2003-04-15 20:05:55 +00:00
parent b53f10dbb6
commit 2826afb3f9
5 changed files with 9 additions and 35 deletions
+2 -1
View File
@@ -179,8 +179,9 @@ struct dbr_alDouble {DBRalDouble};
#define S_db_noRSET (M_dbAccess|31) /*missing record support entry table*/
#define S_db_noSupport (M_dbAccess|33) /*RSET routine not defined*/
#define S_db_BadSub (M_dbAccess|35) /*Subroutine not found*/
/*!!!! Do not change next two lines without changing src/rsrv/server.h!!!!!!!!*/
/*!!!! Do not change next line without changing src/rsrv/server.h!!!!!!!!*/
#define S_db_Pending (M_dbAccess|37) /*Request is pending*/
#define S_db_Blocked (M_dbAccess|39) /*Request is Blocked*/
#define S_db_putDisabled (M_dbAccess|41) /*putFields are disabled*/
#define S_db_bkptSet (M_dbAccess|53) /*Breakpoint already set*/
+1 -3
View File
@@ -342,9 +342,7 @@ STATIC void dbtpnCallback(putNotify *ppn)
{
putNotifyStatus status = ppn->status;
if(status==putNotifyBlocked)
printf("dbtpnCallback: blocked record=%s\n",ppn->paddr->precord->name);
else if(status==0)
if(status==0)
printf("dbtpnCallback: success record=%s\n",ppn->paddr->precord->name);
else
errlogPrintf("%s dbtpnCallback putNotify.status %d\n",(int)status);
+1 -13
View File
@@ -32,7 +32,6 @@ typedef struct ellCheckNode{
typedef enum {
putNotifyOK,
putNotifyCanceled,
putNotifyBlocked,
putNotifyError
}putNotifyStatus;
@@ -113,18 +112,7 @@ epicsShareFunc int epicsShareAPI dbNotifyDump(void);
* put notify is waiting to complete, and 2) a list of records
* to restart.
*
* If dbPutNotify finds it's associated record busy, either because another
* dbPutNotify is already active on the same record or because the record
* is active, the request is put on a restartList.
*
* When a putNotify becomes the owner of a record, it trys up to three times
* to find PACT false. If on the third try it finds the record active,
* it gives up and calls the userCallback with status putNotifyBlocked.
*
* When a putNotify calls dbProcess, each record that is processed
* is added to a waitList. The only exception is that if it finds
* the same record that the putNotify references. The reason is that if it
* did it would be easy to create infinite loops of record processing.
* See the Application Developer's Guide for implementation rules
*/
#ifdef __cplusplus
}
+4 -12
View File
@@ -89,18 +89,10 @@ extern "C" void putNotifyCompletion ( putNotify *ppn )
dbPutNotifyBlocker *pBlocker = static_cast < dbPutNotifyBlocker * > ( ppn->usrPvt );
if ( pBlocker->pNotify ) {
if ( pBlocker->pn.status != putNotifyOK) {
if ( pBlocker->pn.status == putNotifyBlocked ) {
pBlocker->pNotify->exception (
ECA_PUTCBINPROG, "put notify blocked",
static_cast <unsigned> (pBlocker->pn.dbrType),
static_cast <unsigned> (pBlocker->pn.nRequest) );
}
else {
pBlocker->pNotify->exception (
ECA_PUTFAIL, "put notify unsuccessful",
static_cast <unsigned> (pBlocker->pn.dbrType),
static_cast <unsigned> (pBlocker->pn.nRequest) );
}
pBlocker->pNotify->exception (
ECA_PUTFAIL, "put notify unsuccessful",
static_cast <unsigned> (pBlocker->pn.dbrType),
static_cast <unsigned> (pBlocker->pn.nRequest) );
}
else {
pBlocker->pNotify->completion ();
+1 -6
View File
@@ -1449,12 +1449,7 @@ void write_notify_reply(void *pArg)
* status here
*/
if(ppnb->dbPutNotify.status != putNotifyOK){
if(ppnb->dbPutNotify.status == putNotifyBlocked){
status = ECA_PUTCBINPROG;
}
else{
status = ECA_PUTFAIL;
}
status = ECA_PUTFAIL;
}
else{
status = ECA_NORMAL;