Chris Wilson
ac7a4bf44c
os/WaitFor: Check timers on every iteration
...
Currently we only check timer expiry if there are no client fd (or
other input) waiting to be serviced. This makes it very easy to starve
the timers with long request queues, and so miss critical timestamps.
The timer subsystem is just another input waiting to be serviced, so
evaluate it on every loop like all the others, at the cost of calling
GetTimeInMillis() slightly more frequently. (A more invasive and likely
OS specific alternative would be to move the timer wheel to the local
equivalent of timerfd, and treat it as an input fd to the event loop
exactly equivalent to all the others, and so also serviced on every
pass. The trade-off being that the kernel timer wheel is likely more
efficiently integrated with epoll, but individual updates to each timer
would then require syscalls.)
Reviewed-by: Peter Harris <pharris@opentext.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-04-17 16:30:36 -04:00
..
.gitignore
dix and os: gitignore dix.O and os.O
2011-09-23 17:14:47 -07:00
access.c
os: Fix strtok/free crash in ComputeLocalClient
2017-12-13 09:54:14 -05:00
auth.c
Use ARRAY_SIZE all over the tree
2017-10-30 13:45:20 -04:00
backtrace.c
os: avoid uninitialized offsets in backtrace
2018-02-19 13:12:18 -05:00
busfault.c
os: Fix iteration over busfaults
2017-02-23 09:20:48 +10:00
client.c
DetermineClientCmd: try using /proc/pid/cmdline on Solaris too
2017-02-14 11:33:47 -05:00
connection.c
os: Set oc->fd to -1 when connection is closed
2017-06-13 09:56:44 -04:00
inputthread.c
os/inputthread: Force unlock when stopping thread.
2018-01-24 16:27:31 -05:00
io.c
os: Define {ReadFdFrom,WriteFdTo}Client unconditionally
2018-03-08 14:12:36 -05:00
log.c
os: Fix -logfile when used with -displayfd
2018-03-28 15:16:02 -04:00
Makefile.am
os,dix: Depend custom libs on libs, not objects
2017-01-02 12:45:28 -05:00
meson.build
meson: Remove usage of pkg-config --variable=includedir
2018-04-02 13:42:02 -04:00
mitauth.c
os: make MitGenerateCookie() independent of XCSECURITY
2017-08-22 10:59:40 -04:00
oscolor.c
Use ARRAY_SIZE all over the tree
2017-10-30 13:45:20 -04:00
osdep.h
os: Remove mffs()
2017-11-06 17:22:46 -05:00
osinit.c
os: Make OsSignalHandler ask for core dumps for signo != SIGQUIT
2017-12-13 11:11:42 -05:00
ospoll.c
os: Add epoll-like port implementation for Solaris
2017-12-13 11:19:09 -05:00
ospoll.h
os: Add ospoll interface [v2]
2016-07-21 15:04:47 -04:00
reallocarray.c
Import reallocarray() from OpenBSD
2015-04-21 16:57:08 -07:00
rpcauth.c
auth: remove AuthToIDFunc and associated functions. Not used anymore.
2017-02-28 14:15:19 -05:00
strcasecmp.c
Introduce a consistent coding style
2012-03-21 13:54:42 -07:00
strcasestr.c
Introduce a consistent coding style
2012-03-21 13:54:42 -07:00
strlcat.c
Introduce a consistent coding style
2012-03-21 13:54:42 -07:00
strlcpy.c
Introduce a consistent coding style
2012-03-21 13:54:42 -07:00
strndup.c
os: Ensure <dix-config.h> is included in strndup.c
2013-02-14 09:20:46 -08:00
timingsafe_memcmp.c
timingsafe_memcmp: Fix meson build
2017-05-10 10:56:16 -04:00
utils.c
os: use PrivsElevated instead of a manual check
2018-03-21 10:58:40 -04:00
WaitFor.c
os/WaitFor: Check timers on every iteration
2018-04-17 16:30:36 -04:00
xdmauth.c
auth: remove AuthToIDFunc and associated functions. Not used anymore.
2017-02-28 14:15:19 -05:00
xdmcp.c
os: Fix a type error in the IPv6 XDMCP code
2018-01-08 16:19:42 -05:00
xprintf.c
os/xprintf: add Xvscnprintf and Xscnprintf
2012-05-03 14:59:23 +10:00
xserver_poll.c
os: Add poll emulation for mingw [v2]
2016-07-19 11:08:21 -07:00
xsha1.c
os/xsha1.c: Add license and copyright attribution.
2015-01-02 13:39:52 -08:00
xstrans.c
Clean up a couple of warnings in os/
2013-10-31 16:58:12 -07:00