From 28f700da87bf8de301b64b74a778e80e72517b04 Mon Sep 17 00:00:00 2001
From: "benjamin.franksen" <benjamin.franksen@helmholtz-berlin.de>
Date: Thu, 19 Sep 2013 14:09:03 +0000
Subject: [PATCH] seq: pvGet/PutComplete return TRUE if no request is pending

We issue a warning message in this case, since this is most
probably a logical error in the SNL program.
---
 src/seq/seq_if.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/src/seq/seq_if.c b/src/seq/seq_if.c
index 5603a97a..970ef754 100644
--- a/src/seq/seq_if.c
+++ b/src/seq/seq_if.c
@@ -233,6 +233,14 @@ epicsShareFunc boolean epicsShareAPI seq_pvGetComplete(SS_ID ss, VAR_ID varId)
 		return TRUE;
 	}
 
+	if (!ss->getReq[varId])
+	{
+		errlogSevPrintf(errlogMinor,
+			"pvGetComplete(%s): no pending get request for this variable\n",
+			ch->varName);
+		return TRUE;
+	}
+
 	switch (epicsEventTryWait(getSem))
 	{
 	case epicsEventWaitOK:
@@ -530,6 +538,13 @@ epicsShareFunc boolean epicsShareAPI seq_pvPutComplete(
 				        ch->varName);
 			done = TRUE;
 		}
+		else if (!ss->putReq[varId])
+		{
+		        errlogSevPrintf(errlogMinor,
+			        "pvPutComplete(%s): no pending put request for this variable\n",
+			        ch->varName);
+			done = TRUE;
+		}
 		else
 		{
 			switch (epicsEventTryWait(putSem))
-- 
GitLab