Revision: 5077
          http://tigervnc.svn.sourceforge.net/tigervnc/?rev=5077&view=rev
Author:   ossman_
Date:     2013-04-10 13:07:01 +0000 (Wed, 10 Apr 2013)
Log Message:
-----------
Port over the write block handler code from the 1.5 patch.

Modified Paths:
--------------
    trunk/unix/xserver114.patch

Modified: trunk/unix/xserver114.patch
===================================================================
--- trunk/unix/xserver114.patch 2013-04-09 15:53:47 UTC (rev 5076)
+++ trunk/unix/xserver114.patch 2013-04-10 13:07:01 UTC (rev 5077)
@@ -1,6 +1,6 @@
-diff -up xorg-server-20130109/configure.ac.vnc 
xorg-server-20130109/configure.ac
---- xorg-server-20130109/configure.ac.vnc      2013-01-24 13:01:31.013267503 
+0100
-+++ xorg-server-20130109/configure.ac  2013-01-24 13:08:43.283941751 +0100
+diff -up xserver/configure.ac.vnc xserver/configure.ac
+--- xserver/configure.ac.vnc   2013-04-09 16:35:38.000000000 +0200
++++ xserver/configure.ac       2013-04-09 18:16:31.000000000 +0200
 @@ -72,6 +72,7 @@ dnl forcing an entire recompile.x
  AC_CONFIG_HEADERS(include/version-config.h)
  
@@ -29,7 +29,7 @@
  if test "x$XORG" = xyes; then
        XORG_DDXINCS='-I$(top_srcdir)/hw/xfree86 
-I$(top_srcdir)/hw/xfree86/include -I$(top_srcdir)/hw/xfree86/common'
        XORG_OSINCS='-I$(top_srcdir)/hw/xfree86/os-support 
-I$(top_srcdir)/hw/xfree86/os-support/bus -I$(top_srcdir)/os'
-@@ -1826,7 +1833,6 @@ if test "x$XORG" = xyes; then
+@@ -1827,7 +1834,6 @@ if test "x$XORG" = xyes; then
        AC_DEFINE(XORG_SERVER, 1, [Building Xorg server])
        AC_DEFINE(XORGSERVER, 1, [Building Xorg server])
        AC_DEFINE(XFree86Server, 1, [Building XFree86 server])
@@ -37,7 +37,7 @@
        AC_DEFINE(NEED_XF86_TYPES, 1, [Need XFree86 typedefs])
        AC_DEFINE(NEED_XF86_PROTOTYPES, 1, [Need XFree86 helper functions])
        AC_DEFINE(__XSERVERNAME__, "Xorg", [Name of X server])
-@@ -2291,6 +2297,7 @@ hw/dmx/Makefile
+@@ -2292,6 +2298,7 @@ hw/dmx/Makefile
  hw/dmx/man/Makefile
  hw/vfb/Makefile
  hw/vfb/man/Makefile
@@ -45,9 +45,9 @@
  hw/xnest/Makefile
  hw/xnest/man/Makefile
  hw/xwin/Makefile
-diff -up xorg-server-20130109/hw/Makefile.am.vnc 
xorg-server-20130109/hw/Makefile.am
---- xorg-server-20130109/hw/Makefile.am.vnc    2013-01-10 06:06:16.000000000 
+0100
-+++ xorg-server-20130109/hw/Makefile.am        2013-01-24 13:08:43.283941751 
+0100
+diff -up xserver/hw/Makefile.am.vnc xserver/hw/Makefile.am
+--- xserver/hw/Makefile.am.vnc 2013-04-09 16:36:46.000000000 +0200
++++ xserver/hw/Makefile.am     2013-04-09 18:16:31.000000000 +0200
 @@ -33,7 +33,8 @@ SUBDIRS =                    \
        $(XNEST_SUBDIRS)        \
        $(DMX_SUBDIRS)          \
@@ -58,9 +58,9 @@
  
  DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive
  
-diff -up xorg-server-20130109/mi/miinitext.c.vnc 
xorg-server-20130109/mi/miinitext.c
---- xorg-server-20130109/mi/miinitext.c.vnc    2013-01-10 06:06:16.000000000 
+0100
-+++ xorg-server-20130109/mi/miinitext.c        2013-01-24 13:08:43.283941751 
+0100
+diff -up xserver/mi/miinitext.c.vnc xserver/mi/miinitext.c
+--- xserver/mi/miinitext.c.vnc 2013-04-09 16:37:21.000000000 +0200
++++ xserver/mi/miinitext.c     2013-04-09 18:16:31.000000000 +0200
 @@ -112,6 +112,10 @@ SOFTWARE.
  #include "micmap.h"
  #include "globals.h"
@@ -82,3 +82,56 @@
  };
  
  static ExtensionModule *ExtensionModuleList = NULL;
+diff -up xserver/os/WaitFor.c.vnc xserver/os/WaitFor.c
+--- xserver/os/WaitFor.c.vnc   2013-04-10 14:51:13.000000000 +0200
++++ xserver/os/WaitFor.c       2013-04-10 14:55:40.000000000 +0200
+@@ -124,6 +124,9 @@ static void DoTimer(OsTimerPtr timer, CA
+ static void CheckAllTimers(void);
+ static OsTimerPtr timers = NULL;
+ 
++extern void vncWriteBlockHandler(fd_set *fds);
++extern void vncWriteWakeupHandler(int nfds, fd_set *fds);
++
+ /*****************
+  * WaitForSomething:
+  *     Make the server suspend until there is
+@@ -149,6 +152,7 @@ WaitForSomething(int *pClientsReady)
+     INT32 timeout = 0;
+     fd_set clientsReadable;
+     fd_set clientsWritable;
++    fd_set socketsWritable;
+     int curclient;
+     int selecterr;
+     static int nready;
+@@ -207,6 +211,9 @@ WaitForSomething(int *pClientsReady)
+             XFD_COPYSET(&AllSockets, &LastSelectMask);
+         }
+ 
++        FD_ZERO(&socketsWritable);
++        vncWriteBlockHandler(&socketsWritable);
++
+         BlockHandler((pointer) &wt, (pointer) &LastSelectMask);
+         if (NewOutputPending)
+             FlushAllOutput();
+@@ -218,10 +225,20 @@ WaitForSomething(int *pClientsReady)
+             i = Select(MaxClients, &LastSelectMask, &clientsWritable, NULL, 
wt);
+         }
+         else {
+-            i = Select(MaxClients, &LastSelectMask, NULL, NULL, wt);
++            if (AnyClientsWriteBlocked)
++            XFD_ORSET(&socketsWritable, &ClientsWriteBlocked, 
&socketsWritable);
++
++            if (XFD_ANYSET(&socketsWritable)) {
++                i = Select (MaxClients, &LastSelectMask, &socketsWritable, 
NULL, wt);
++                if (AnyClientsWriteBlocked)
++                    XFD_ANDSET(&clientsWritable, &socketsWritable, 
&ClientsWriteBlocked);
++            } else {
++                i = Select (MaxClients, &LastSelectMask, NULL, NULL, wt);
++            }
+         }
+         selecterr = GetErrno();
+         WakeupHandler(i, (pointer) &LastSelectMask);
++        vncWriteWakeupHandler(i, &socketsWritable);
+         if (i <= 0) {           /* An error or timeout occurred */
+             if (dispatchException)
+                 return 0;

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Tigervnc-commits mailing list
Tigervnc-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tigervnc-commits

Reply via email to