---
 lib/coroipcc.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/lib/coroipcc.c b/lib/coroipcc.c
index 34db980..6fe70e3 100644
--- a/lib/coroipcc.c
+++ b/lib/coroipcc.c
@@ -872,6 +872,13 @@ coroipcc_dispatch_get (
        }
 
        error = socket_recv (ipc_instance->fd, &buf, 1);
+#if defined(COROSYNC_SOLARIS) || defined(COROSYNC_BSD) || 
defined(COROSYNC_DARWIN)
+       /* On many OS poll() never returns POLLHUP or POLLERR.
+        * EOF is detected when recvmsg() return 0.
+        */
+       if ( error == CS_ERR_LIBRARY )
+               goto error_put;
+#endif
        assert (error == CS_OK);
 
        if (shared_mem_dispatch_bytes_left (ipc_instance) > 500000) {
-- 
1.7.4.4

_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to