/* -*-c-*-
*
- * $Id: sel.c,v 1.2 1999/05/15 10:33:32 mdw Exp $
+ * $Id: sel.c,v 1.3 1999/05/21 22:13:59 mdw Exp $
*
* I/O multiplexing support
*
/*----- Revision history --------------------------------------------------*
*
* $Log: sel.c,v $
+ * Revision 1.3 1999/05/21 22:13:59 mdw
+ * Use new `tv' macros. Fix ordering bug for timeout selectors.
+ *
* Revision 1.2 1999/05/15 10:33:32 mdw
* Fix copyright notices.
*
/* --- More line noise --- */
- while (*tt && tv_cmp(&(*tt)->tv, tv) > 0)
+ while (*tt && TV_CMP(&(*tt)->tv, <, tv))
tt = &(*tt)->next;
t->next = *tt;
t->prev = (sel_timer *)tt;
if (s->timers) {
struct timeval now;
gettimeofday(&now, 0);
- tv_sub(&tv, &now, &s->timers->tv);
+ TV_SUB(&tv, &s->timers->tv, &now);
err = select(s->files ? s->files->fd + 1 : 0,
fd + SEL_READ, fd + SEL_WRITE, fd + SEL_EXC,
&tv);
{
sel_timer *t, *tt;
- for (t = s->timers; t && tv_cmp(&t->tv, &tv) <= 0; t = tt) {
+ for (t = s->timers; t && TV_CMP(&t->tv, <=, &tv); t = tt) {
tt = t->next;
t->next = t->prev = t;
t->func(&tv, t->p);