Commit 4cdfbb89 authored by Eli Zaretskii's avatar Eli Zaretskii

Improve 'alarm' implementation on MS-Windows.

 src/w32proc.c (alarm) [HAVE_SETITIMER]: Be more conformant to the expected
 return results.
 [!HAVE_SETITIMER]: Behave as the previous version that didn't
 support timers.
parent f0e5f225
......@@ -7,6 +7,10 @@
(getitimer, setitimer): If disable_itimers is non-zero, return an
error indication without doing anything. Reported by Fabrice
Popineau <fabrice.popineau@supelec.fr> as part of bug#12544.
(alarm) [HAVE_SETITIMER]: Be more conformant to the expected
return results.
[!HAVE_SETITIMER]: Behave as the previous version that didn't
support timers.
* emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to
term_ntproc after all the other bookkeeping, to get timers working
......
......@@ -669,15 +669,19 @@ setitimer(int which, struct itimerval *value, struct itimerval *ovalue)
int
alarm (int seconds)
{
struct itimerval new_values;
#ifdef HAVE_SETITIMER
struct itimerval new_values, old_values;
new_values.it_value.tv_sec = seconds;
new_values.it_value.tv_usec = 0;
new_values.it_interval.tv_sec = new_values.it_interval.tv_usec = 0;
setitimer (ITIMER_REAL, &new_values, NULL);
if (setitimer (ITIMER_REAL, &new_values, &old_values) < 0)
return 0;
return old_values.it_value.tv_sec;
#else
return seconds;
#endif
}
/* Defined in <process.h> which conflicts with the local copy */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment