Go to file
Aaron Plattner 88c4622b59 linux: Retry VT ioctls while errno == EINTR
When the smart scheduler is enabled, the VT ioctls (particularly
VT_WAITACTIVE) can be interrupted by the smart scheduler's SIGALRMs.
Previously, this caused the server to immediately continue on to
ScreenInit, almost certainly causing a crash or failure because the X
server that owned the VT hadn't finished cleaning up.  As of commit
7ee965a300, it causes a FatalError
instead.

Retrying the ioctl as long as it fails with errno == EINTR fixes the
problem and allows server regenerations to trigger VT switches that
actually succeed.

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Cyril Brulebois <kibi@debian.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
2011-04-22 11:14:43 -07:00
composite Revert "composite: Don't backfill non-bg-None windows" 2011-04-15 12:55:48 -04:00
config config: handle device change event properly 2011-03-24 09:51:09 +10:00
damageext damage: use DamageReportDamage for the initial borderClip damage report 2011-04-13 18:59:09 -07:00
dbe miDbe window priv priv is pre-allocated, don't use dixSetPrivate (bug 28639) 2010-07-02 12:30:24 -04:00
dix dix: improve control flow in QueryTrackers 2011-04-21 16:05:16 +10:00
doc man: refactor common code in the man pages makefiles 2011-01-18 15:11:10 -08:00
exa EXA: Use dixGetPrivate(Addr) instead of dixLookupPrivate. 2011-03-28 08:30:35 -07:00
fb fb: fix memory leak in fbOverlayFinishScreenInit 2011-04-04 15:41:13 +03:00
glx glx: Make --disable-dri not disable AIGLX 2011-04-15 17:47:20 -04:00
hw linux: Retry VT ioctls while errno == EINTR 2011-04-22 11:14:43 -07:00
include dix: change ProcessVelocityData2D to BOOL. 2011-04-21 14:17:55 +10:00
m4 Add macro for detecting thread local storage support. 2011-01-08 08:42:49 -08:00
mi mi: fix memory leak in miZeroLine 2011-04-04 15:47:58 +03:00
miext damage: use DamageReportDamage for the initial borderClip damage report 2011-04-13 18:59:09 -07:00
os os: fix use after free in EstablishNewConnections 2011-04-07 19:57:38 +03:00
randr Send events that were missing from RRSelectInput 2011-04-13 19:04:32 -07:00
record Merge remote branch 'whot/for-keith' 2011-03-09 14:25:54 -08:00
render dix: don't free stranger pointers inside AllocARGBCursor 2011-04-07 19:57:57 +03:00
test test: remove glib dependency 2011-04-21 13:43:43 +10:00
Xext input: remove GetKeyboardValuatorEvents, this is now unnecessary. 2011-04-18 13:05:46 +10:00
xfixes xorg: remove unused pointer values all over the server 2011-04-04 15:41:13 +03:00
Xi Xi: don't swap the status byte in the XIPassiveGrab replies 2011-04-18 13:04:47 +10:00
xkb Merge remote-tracking branch 'vignatti/for-keith' 2011-04-04 11:57:39 -07:00
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
autogen.sh autogen.sh: Pass --force to autoreconf 2008-07-22 16:55:26 +03:00
configure.ac Merge remote-tracking branch 'whot/for-keith' 2011-04-22 10:48:37 -07:00
COPYING Add asprintf() implementation for platforms without it 2010-12-07 11:10:35 -08:00
fix-miregion Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-miregion-private Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-patch-whitespace Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
fix-region Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
Makefile.am remove dolt 2010-09-30 17:44:59 -07:00
manpages.am man: refactor common code in the man pages makefiles 2011-01-18 15:11:10 -08:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
xorg-server.m4 macros: use PKG_CONFIG variable rather than executable name 2010-01-07 12:57:23 -08:00
xorg-server.pc.in config: declare xserver private dependencies in xorg-server.pc 2010-06-22 11:34:47 -07:00

					X Server

The X server accepts requests from client applications to create windows,
which are (normally rectangular) "virtual screens" that the client program
can draw into.

Windows are then composed on the actual screen by the X server
(or by a separate composite manager) as directed by the window manager,
which usually communicates with the user via graphical controls such as buttons
and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the
following article:
http://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the
Xorg mailing list:

        http://lists.freedesktop.org/mailman/listinfo/xorg

Please submit bug reports to the Xorg bugzilla:

        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg

The master development code repository can be found at:

        git://anongit.freedesktop.org/git/xorg/xserver

        http://cgit.freedesktop.org/xorg/xserver

For patch submission instructions, see:

	http://www.x.org/wiki/Development/Documentation/SubmittingPatches

For more information on the git code manager, see:

        http://wiki.x.org/wiki/GitPage