From d5c5baad834a2d61e94256a37e3e020bc88ff2c7 Mon Sep 17 00:00:00 2001
From: Jeff Hill
Date: Tue, 28 May 2002 23:49:31 +0000
Subject: [PATCH] fixed race condition occuring when a put notify is canceled
by a ca clear channel at the same instant that it completes
---
RELEASE_NOTES.html | 9 ++++++++-
src/rsrv/camessage.c | 4 +++-
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/RELEASE_NOTES.html b/RELEASE_NOTES.html
index 4b6ecb084..8f088dd32 100644
--- a/RELEASE_NOTES.html
+++ b/RELEASE_NOTES.html
@@ -49,11 +49,18 @@ occur when recGblGetTimeStamp is called.
calcoutRecord
nsev not sevr must be checked to decide if dbPutLink should be called.
+
This is now fixed
calcPerform
-This now returns a non zero value if the result is nan (not a number).
:wq
+This now returns a non zero value if the result is nan (not a number).
+
+CA server (rsrv)
+
+Fixed race condition occuring when a put notify is canceled by a ca clear
+channel at the same instant that it completes. This problem was introduced in
+R3.13.5.
Changes since 3.13.5
diff --git a/src/rsrv/camessage.c b/src/rsrv/camessage.c
index 20a17e06b..63ac7ede6 100644
--- a/src/rsrv/camessage.c
+++ b/src/rsrv/camessage.c
@@ -1355,7 +1355,9 @@ void write_notify_reply(void *pArg)
*/
FASTLOCK(&pClient->putNotifyLock);
ppnb = (RSRVPUTNOTIFY *)ellGet(&pClient->putNotifyQue);
- ppnb->onExtraLaborQueue = FALSE;
+ if ( ppnb ) {
+ ppnb->onExtraLaborQueue = FALSE;
+ }
FASTUNLOCK(&pClient->putNotifyLock);
/*
* break to loop exit