#include <sys/time.h>
#endif
-/* The ubiquitous min/max macros. */
-
-#define max(X, Y) ((X) > (Y) ? (X) : (Y))
-#define min(X, Y) ((X) < (Y) ? (X) : (Y))
-
/* Free-list of atimer structures. */
static struct atimer *free_atimers;
int pending_atimers;
-/* Block/unblock SIGALRM.. */
+/* Block/unblock SIGALRM. */
#define BLOCK_ATIMERS sigblock (sigmask (SIGALRM))
#define UNBLOCK_ATIMERS sigunblock (sigmask (SIGALRM))
static void schedule_atimer P_ ((struct atimer *));
static struct atimer *append_atimer_lists P_ ((struct atimer *,
struct atimer *));
+SIGTYPE alarm_signal_handler ();
/* Start a new atimer of type TYPE. TIME specifies when the timer is
struct atimer **list = i ? &stopped_atimers : &atimers;
/* See if TIMER is active or stopped. */
- for (t = *list, prev = 0; t && t != timer; t = t->next)
+ for (t = *list, prev = NULL; t && t != timer; prev = t, t = t->next)
;
/* If it is, take it off the its list, and put in on the
t->next = free_atimers;
free_atimers = t;
+ break;
}
}
EMACS_GET_TIME (now);
}
-#if defined (USG) && !defined (POSIX_SIGNALS)
- /* USG systems forget handlers when they are used;
- must reestablish each time. */
- signal (SIGALRM, alarm_signal_handler);
-#endif /* USG */
-
set_alarm ();
}