summaryrefslogtreecommitdiffstats
path: root/libvncserver/rfbserver.c
diff options
context:
space:
mode:
authorQuentin BUATHIER <qbuathier@tetrane.com>2018-08-09 09:33:59 +0200
committerQuentin BUATHIER <qbuathier@tetrane.com>2018-08-09 10:05:37 +0200
commitcedae6e6f97b14f5df3ea7c5f7efd59f2bc9ad82 (patch)
tree253664b8a90865a6d68458156d6bec3c79640b7d /libvncserver/rfbserver.c
parent96e163bdae65aa2c68e4301cf9ebe29e9f53f3d9 (diff)
downloadlibtdevnc-cedae6e6f97b14f5df3ea7c5f7efd59f2bc9ad82.tar.gz
libtdevnc-cedae6e6f97b14f5df3ea7c5f7efd59f2bc9ad82.zip
Fix the concurrent issue hapenning between the freeing of the client and the clientOutput thread
Diffstat (limited to 'libvncserver/rfbserver.c')
-rw-r--r--libvncserver/rfbserver.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libvncserver/rfbserver.c b/libvncserver/rfbserver.c
index 7af6aed..f13050d 100644
--- a/libvncserver/rfbserver.c
+++ b/libvncserver/rfbserver.c
@@ -621,6 +621,11 @@ rfbClientConnectionGone(rfbClientPtr cl)
UNLOCK(cl->sendMutex);
TINI_MUTEX(cl->sendMutex);
+#ifdef LIBVNCSERVER_HAVE_LIBPTHREAD
+ close(cl->pipe_notify_client_thread[0]);
+ close(cl->pipe_notify_client_thread[1]);
+#endif
+
rfbPrintStats(cl);
rfbResetStats(cl);