On Thu, 2005-07-14 at 23:37 +0100, Alan Cox wrote: > In actual fact you also want to fix users of > > while(time_before(foo, jiffies)) { whack(mole); } > > to become > > init_timeout(&timeout); > timeout.expires = jiffies + n > add_timeout(&timeout); > while(!timeout_expired(&timeout)) {} > > Which is a trivial wrapper around timers as we have them now
Or something like this: struct timeout_timer { unsigned long expires; }; static inline void timeout_set(struct timeout_timer *timer, unsigned int msecs) { timer->expires = jiffies + msecs_to_jiffies(msecs); } static inline int timeout_expired(struct timeout_timer *timer) { return (time_after(jiffies, timer->expires)); } It provides a nice API for relative timeouts without adding overhead. - Eric St-Laurent - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/