diff options
author | Pierre Ossman <ossman@cendio.se> | 2013-04-10 13:07:01 +0000 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2013-04-10 13:07:01 +0000 |
commit | 2a87ddcbb5a28cd30d65ff2957d7f5ac2d9d3f1c (patch) | |
tree | e25285e92914dbad4e841c60b32306a787ad4443 /unix/xserver114.patch | |
parent | f17bc9a0ddf0ff26a5260c956218a84ec0a80e73 (diff) | |
download | tigervnc-2a87ddcbb5a28cd30d65ff2957d7f5ac2d9d3f1c.tar.gz tigervnc-2a87ddcbb5a28cd30d65ff2957d7f5ac2d9d3f1c.zip |
Port over the write block handler code from the 1.5 patch.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@5077 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'unix/xserver114.patch')
-rw-r--r-- | unix/xserver114.patch | 75 |
1 files changed, 64 insertions, 11 deletions
diff --git a/unix/xserver114.patch b/unix/xserver114.patch index 80dd6a22..944bc4a3 100644 --- a/unix/xserver114.patch +++ b/unix/xserver114.patch @@ -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 @@ diff -up xorg-server-20130109/configure.ac.vnc xorg-server-20130109/configure.ac 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 @@ diff -up xorg-server-20130109/configure.ac.vnc xorg-server-20130109/configure.ac 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 @@ diff -up xorg-server-20130109/configure.ac.vnc xorg-server-20130109/configure.ac 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 @@ diff -up xorg-server-20130109/hw/Makefile.am.vnc xorg-server-20130109/hw/Makefil 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 @@ diff -up xorg-server-20130109/mi/miinitext.c.vnc xorg-server-20130109/mi/miinite }; 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; |