]> git.eshelyaron.com Git - emacs.git/commit
On GNU/Linux, use timerfd for asynchronous timers.
authorDmitry Antipov <dmantipov@yandex.ru>
Mon, 28 Jul 2014 06:28:15 +0000 (10:28 +0400)
committerDmitry Antipov <dmantipov@yandex.ru>
Mon, 28 Jul 2014 06:28:15 +0000 (10:28 +0400)
commit768b24eb0e880c0b39e36fd089905cdca572a758
tree75899b103fedc549e5d17294d39bfcb4ed0a9bc9
parent7daa4ff121ad8da6e609b959d5c95796e5d3a9eb
On GNU/Linux, use timerfd for asynchronous timers.
* configure.ac (toplevel): Check whether GNU/Linux-specific
timerfd functions and macros are available.
* m4/clock_time.m4 (gl_CLOCK_TIME): Check for clock_getres as well.
* src/atimer.c (toplevel) [HAVE_TIMERFD]: Include sys/timerfd.h.
(toplevel): Rename alarm_timer_ok to special_timer_available.
[HAVE_TIMERFD]: Declare timerfd.
[HAVE_CLOCK_GETRES]: Declare resolution.
(start_atimer) [HAVE_CLOCK_GETRES]: Round up timestamp to
system timer resolution.
(set_alarm) [HAVE_TIMERFD]: Use timerfd_settime.
(timerfd_callback) [HAVE_TIMERFD]: New function.
(atimer_result, debug_timer_callback, Fdebug_timer_check)
[ENABLE_CHECKING]: New function for the sake of automated tests.
(init_atimer) [HAVE_TIMERFD]: Setup timerfd.
[HAVE_CLOCK_GETRES]: Likewise for system timer resolution.
[ENABLE_CHECKING]: Defsubr test function.
* src/atimer.h (timerfd_callback) [HAVE_TIMERFD]: Add prototype.
* src/lisp.h (add_timer_wait_descriptor) [HAVE_TIMERFD]: Likewise.
* src/process.c (add_timer_wait_descriptor) [HAVE_TIMERFD]: New function.
* test/automated/timer-tests.el (timer-tests-debug-timer-check): New test.
ChangeLog
configure.ac
m4/clock_time.m4
src/ChangeLog
src/atimer.c
src/atimer.h
src/lisp.h
src/process.c
test/ChangeLog
test/automated/timer-tests.el