summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVic Lee <llyzs@163.com>2010-02-09 22:05:13 +0800
committerChristian Beier <dontmind@freeshell.org>2010-10-13 19:39:59 +0200
commit6803bfe9d5b9f52215c2aecc25cd9ab9a22c07e3 (patch)
treeebf26db21004dd7af5358825b3e28c4e6a6e70b4
parent47fc9fdd597be5d3285f688706b8832020efd3e1 (diff)
downloadlibvncserver-6803bfe9d5b9f52215c2aecc25cd9ab9a22c07e3.zip
libvncserver-6803bfe9d5b9f52215c2aecc25cd9ab9a22c07e3.tar.gz
Avoid 100% CPU usage when calling ReadFromRFBServer and no available bytes to read
Signed-off-by: Vic Lee <llyzs@163.com> Signed-off-by: Christian Beier <dontmind@freeshell.org>
-rw-r--r--libvncclient/sockets.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libvncclient/sockets.c b/libvncclient/sockets.c
index e9a4b53..a4caaa5 100644
--- a/libvncclient/sockets.c
+++ b/libvncclient/sockets.c
@@ -150,6 +150,11 @@ ReadFromRFBServer(rfbClient* client, char *out, unsigned int n)
errno=WSAGetLastError();
#endif
if (errno == EWOULDBLOCK || errno == EAGAIN) {
+#ifndef WIN32
+ usleep (10000);
+#else
+ Sleep (10);
+#endif
/* TODO:
ProcessXtEvents();
*/
@@ -191,6 +196,11 @@ ReadFromRFBServer(rfbClient* client, char *out, unsigned int n)
errno=WSAGetLastError();
#endif
if (errno == EWOULDBLOCK || errno == EAGAIN) {
+#ifndef WIN32
+ usleep (10000);
+#else
+ Sleep (10);
+#endif
/* TODO:
ProcessXtEvents();
*/
OpenPOWER on IntegriCloud