PengZheng commented on code in PR #551:
URL: https://github.com/apache/celix/pull/551#discussion_r1191197382


##########
bundles/remote_services/remote_service_admin_shm_v2/rsa_shm/src/rsa_shm_client.c:
##########
@@ -638,6 +634,16 @@ static void 
*rsaShmClientManager_exceptionMsgHandlerThread(void *data) {
             removed = rsaShmClientManager_handleMsgState(clientManager, 
exceptionMsg);
             if (removed) {
                 celix_arrayList_add(evictedMsgs, exceptionMsg);
+            } else if (clientManager->threadActive == false) {
+                int fd = socket(AF_UNIX, SOCK_DGRAM, 0);
+                if (fd >= 0) {
+                    if (bind(fd, (struct sockaddr *) 
&exceptionMsg->serverAddr, sizeof(struct sockaddr_un)) == 0) {
+                        //Peer server process has been terminated, so remove 
the exception message
+                        //If the peer server process is still running, the 
bind will fail, and errno will be set to EADDRINUSE
+                        celix_arrayList_add(evictedMsgs, exceptionMsg);

Review Comment:
   Busy loop when `clientManager->threadActive == false`.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@celix.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to