From 2d3de1916be3a42155dda0749a52a7b4bfe804e0 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Mon, 6 May 2019 12:22:34 -0500 Subject: [PATCH] Don't clear caClientCallbackThreadId in CA's exit handler --- documentation/RELEASE_NOTES.html | 9 +++++++++ src/ca/client/ca_client_context.cpp | 1 - 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html index c47dc2d5b..8ed4e04bf 100644 --- a/documentation/RELEASE_NOTES.html +++ b/documentation/RELEASE_NOTES.html @@ -16,6 +16,15 @@ +

Cleaning up with Multiple CA contexts in a Process

+ +

Bruno Martins reported a problem with the CA client library at shutdown in a +process that uses multiple CA client contexts. The first context that triggers +the CA client exit handler prevents any others from being able to clean up +because it resets the ID of an internal epicsThreadPrivate variable which is +shared by all clients. This action has been removed from the client library, +which makes cleanup of clients like this possible.

+

Perl CA bindings fixed for macOS Mojave

Apple removed some Perl header files from macOS Mojave that were available diff --git a/src/ca/client/ca_client_context.cpp b/src/ca/client/ca_client_context.cpp index 20a6e84c8..95cd6cb59 100644 --- a/src/ca/client/ca_client_context.cpp +++ b/src/ca/client/ca_client_context.cpp @@ -48,7 +48,6 @@ const unsigned ca_client_context :: flushBlockThreshold = 0x58000; extern "C" void cacExitHandler ( void *) { epicsThreadPrivateDelete ( caClientCallbackThreadId ); - caClientCallbackThreadId = 0; delete ca_client_context::pDefaultServiceInstallMutex; }