--
Tiago Vignatti
C3SL - Centro de Computação Científica e Software Livre
www.c3sl.ufpr.br
>From ad5f1295fb2db4f978f44f54770c0e91cebc9fcd Mon Sep 17 00:00:00 2001
From: Tiago Vignatti <[EMAIL PROTECTED]>
Date: Wed, 1 Oct 2008 21:19:08 -0300
Subject: [PATCH] ddx (xfree86) implementation of the input-thread.


Signed-off-by: Tiago Vignatti <[EMAIL PROTECTED]>
---
 hw/xfree86/common/xf86Events.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c
index 15dce9f..50ed0f5 100644
--- a/hw/xfree86/common/xf86Events.c
+++ b/hw/xfree86/common/xf86Events.c
@@ -321,7 +321,19 @@ xf86Wakeup(pointer blockData, int err, pointer pReadmask)
     if (xf86VTSwitchPending()) xf86VTSwitch();
 }
 
+#ifdef INPUT_THREAD
+/*
+ * xf86ThreadReadInput --
+ *    signal handler for the input thread.
+ */
+static void
+xf86ThreadReadInput(void *closure)
+{
+    InputInfoPtr pInfo = (InputInfoPtr) closure;
 
+    pInfo->read_input(pInfo);
+}
+#else
 /*
  * xf86SigioReadInput --
  *    signal handler for the SIGIO signal.
@@ -339,6 +351,7 @@ xf86SigioReadInput(int fd,
     xf86UnblockSIGIO(sigstate);
     errno = errno_save;
 }
+#endif
 
 /*
  * xf86AddEnabledDevice --
@@ -347,9 +360,13 @@ xf86SigioReadInput(int fd,
 _X_EXPORT void
 xf86AddEnabledDevice(InputInfoPtr pInfo)
 {
+#ifdef INPUT_THREAD
+    AddEnabledDeviceThreaded (pInfo->fd, xf86ThreadReadInput, pInfo);
+#else
     if (!xf86InstallSIGIOHandler (pInfo->fd, xf86SigioReadInput, pInfo)) {
 	AddEnabledDevice(pInfo->fd);
     }
+#endif
 }
 
 /*
@@ -359,9 +376,13 @@ xf86AddEnabledDevice(InputInfoPtr pInfo)
 _X_EXPORT void
 xf86RemoveEnabledDevice(InputInfoPtr pInfo)
 {
+#ifdef INPUT_THREAD
+    RemoveEnabledDeviceThreaded(pInfo->fd);
+#else
     if (!xf86RemoveSIGIOHandler (pInfo->fd)) {
 	RemoveEnabledDevice(pInfo->fd);
     }
+#endif
 }
 
 static int *xf86SignalIntercept = NULL;
-- 
1.5.4.3

_______________________________________________
xorg mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/xorg

Reply via email to