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/

Reply via email to