diff options
author | Kevin Lo <kevlo@FreeBSD.org> | 2008-10-17 01:20:29 +0000 |
---|---|---|
committer | Kevin Lo <kevlo@FreeBSD.org> | 2008-10-17 01:20:29 +0000 |
commit | 31772a754aab612a7d9c55f90fecabce892b9c60 (patch) | |
tree | 8d2af6af603c738a7d1afef454916b3a2205d178 /sysutils/synergy | |
parent | 540e03779ada70e6739e927c0c8361ea265486b4 (diff) | |
download | ports-31772a754aab612a7d9c55f90fecabce892b9c60.tar.gz ports-31772a754aab612a7d9c55f90fecabce892b9c60.zip |
Notes
Diffstat (limited to 'sysutils/synergy')
-rw-r--r-- | sysutils/synergy/Makefile | 2 | ||||
-rw-r--r-- | sysutils/synergy/files/patch-lib__platform__CXWindowsEventQueueBuffer.cpp | 58 |
2 files changed, 1 insertions, 59 deletions
diff --git a/sysutils/synergy/Makefile b/sysutils/synergy/Makefile index c9e7f1b2f219..977c27b95eee 100644 --- a/sysutils/synergy/Makefile +++ b/sysutils/synergy/Makefile @@ -7,7 +7,7 @@ PORTNAME= synergy PORTVERSION= 1.3.1 -PORTREVISION= 5 +PORTREVISION= 6 CATEGORIES= sysutils MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITE_SUBDIR= ${PORTNAME}2 diff --git a/sysutils/synergy/files/patch-lib__platform__CXWindowsEventQueueBuffer.cpp b/sysutils/synergy/files/patch-lib__platform__CXWindowsEventQueueBuffer.cpp deleted file mode 100644 index dcad133a121b..000000000000 --- a/sysutils/synergy/files/patch-lib__platform__CXWindowsEventQueueBuffer.cpp +++ /dev/null @@ -1,58 +0,0 @@ ---- ./lib/platform/CXWindowsEventQueueBuffer.cpp 2005-04-24 12:32:16.000000000 +0930 -+++ ./lib/platform/CXWindowsEventQueueBuffer.cpp 2008-10-02 11:14:18.112098206 +0930 -@@ -84,6 +73,8 @@ - pfds[0].events = POLLIN; - int timeout = (dtimeout < 0.0) ? -1 : - static_cast<int>(1000.0 * dtimeout); -+ int remaining = timeout; -+ int retval = 0; - #else - struct timeval timeout; - struct timeval* timeoutPtr; -@@ -102,19 +93,31 @@ - FD_ZERO(&rfds); - FD_SET(ConnectionNumber(m_display), &rfds); - #endif -+ // It's possible that the X server has queued events locally -+ // in xlib's event buffer and not pushed on to the fd. Hence we -+ // can't simply monitor the fd as we may never be woken up. -+ // ie addEvent calls flush, XFlush may not send via the fd hence -+ // there is an event waiting to be sent but we must exit the poll -+ // before it can. -+ // Instead we poll for a brief period of time (so if events -+ // queued locally in the xlib buffer can be processed) -+ // and continue doing this until timeout is reached. -+ // The human eye can notice 60hz (ansi) which is 16ms, however -+ // we want to give the cpu a chance s owe up this to 25ms -+#define TIMEOUT_DELAY 25 - -- // wait for message from X server or for timeout. also check -- // if the thread has been cancelled. poll() should return -1 -- // with EINTR when the thread is cancelled. -+ while( remaining > 0 && QLength(m_display)==0 && retval==0){ - #if HAVE_POLL -- poll(pfds, 1, timeout); -+ retval = poll(pfds, 1, TIMEOUT_DELAY); //16ms = 60hz, but we make it > to play nicely with the cpu - #else -- select(ConnectionNumber(m_display) + 1, -+ retval = select(ConnectionNumber(m_display) + 1, - SELECT_TYPE_ARG234 &rfds, - SELECT_TYPE_ARG234 NULL, - SELECT_TYPE_ARG234 NULL, -- SELECT_TYPE_ARG5 timeoutPtr); -+ SELECT_TYPE_ARG5 TIMEOUT_DELAY); - #endif -+ remaining-=TIMEOUT_DELAY; -+ } - - { - // we're no longer waiting for events -@@ -179,7 +184,7 @@ - CXWindowsEventQueueBuffer::isEmpty() const - { - CLock lock(&m_mutex); -- return (XPending(m_display) == 0); -+ return (QLength(m_display) == 0 ); - } - - CEventQueueTimer* |