summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-base/xorg-server/files/1.3.0.0-fix-xkb-openoffice-hangs.patch')
-rw-r--r--x11-base/xorg-server/files/1.3.0.0-fix-xkb-openoffice-hangs.patch55
1 files changed, 0 insertions, 55 deletions
diff --git a/x11-base/xorg-server/files/1.3.0.0-fix-xkb-openoffice-hangs.patch b/x11-base/xorg-server/files/1.3.0.0-fix-xkb-openoffice-hangs.patch
deleted file mode 100644
index 88df93b..0000000
--- a/x11-base/xorg-server/files/1.3.0.0-fix-xkb-openoffice-hangs.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-https://bugs.gentoo.org/show_bug.cgi?id=197104
-
-commit a5b8053606d6e786cdcf6734f271acc05f9cc588
-Author: Adam Jackson <ajax@benzedrine.nwnk.net>
-Date: Tue Sep 11 11:37:06 2007 -0400
-
- Ignore - not just block - SIGALRM around Popen()/Pclose().
-
- Because our "popen" implementation uses stdio, and because nobody's stdio
- library is capable of surviving signals, we need to make absolutely sure
- that we hide the SIGALRM from the smart scheduler. Otherwise, when you
- open a menu in openoffice, and it recompiles XKB to deal with the
- accelerators, and you popen xkbcomp because we suck, then the scheduler
- will tell you you're taking forever doing something stupid, and the
- wait() code will get confused, and input will hang and your CPU usage
- slams to 100%. Down, not across.
-
-diff --git a/os/utils.c b/os/utils.c
-index 3bb7dbe..afcaae4 100644
---- a/os/utils.c
-+++ b/os/utils.c
-@@ -1720,6 +1720,8 @@ static struct pid {
- int pid;
- } *pidlist;
-
-+static sighandler_t old_alarm = NULL; /* XXX horrible awful hack */
-+
- pointer
- Popen(char *command, char *type)
- {
-@@ -1741,11 +1743,15 @@ Popen(char *command, char *type)
- return NULL;
- }
-
-+ /* Ignore the smart scheduler while this is going on */
-+ old_alarm = signal(SIGALRM, SIG_IGN);
-+
- switch (pid = fork()) {
- case -1: /* error */
- close(pdes[0]);
- close(pdes[1]);
- xfree(cur);
-+ signal(SIGALRM, old_alarm);
- return NULL;
- case 0: /* child */
- if (setgid(getgid()) == -1)
-@@ -1921,6 +1927,8 @@ Pclose(pointer iop)
- /* allow EINTR again */
- OsReleaseSignals ();
-
-+ signal(SIGALRM, old_alarm);
-+
- return pid == -1 ? -1 : pstat;
- }
-