diff options
author | Aaron Plattner <aplattner@nvidia.com> | 2011-04-18 08:23:48 -0700 |
---|---|---|
committer | Jeremy Huddleston <jeremyhu@apple.com> | 2011-05-28 18:14:19 -0700 |
commit | 4bfb22e7667c4cd55da5e7a31af29ce5769ecc65 (patch) | |
tree | 471c99f9c10751885f9e251133133c1edcd710ca /Xext/xvdix.h | |
parent | 50b9d3142ff90af2f7fa35b7b1bf9e5a07723dbd (diff) |
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
7ee965a300c9eddcc1acacf9414cfe3e589222a8, 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>
(cherry picked from commit 88c4622b594a1725d0cee86bc82ad640d241c520)
Diffstat (limited to 'Xext/xvdix.h')
0 files changed, 0 insertions, 0 deletions