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.
This commit is contained in:
parent
f0e5f2255f
commit
4cdfbb8976
2 changed files with 11 additions and 3 deletions
|
@ -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 */
|
||||
|
|
Loading…
Add table
Reference in a new issue