Re: [PATCH]: DELAYTIMER_MAX is defined

Eric Piel
2003-05-07T07:16:36Z

george anzinger wrote:
>
> Eric Piel wrote:
> > Playing around with the posix timers I've noticed that DELAYTIMER_MAX is
> > not defined. This constant is specified in the POSIX specifications. It
> > should contain the maximum possible value of overruns on a signal. It is
> > also said that the overrun shouldn't overflow. cf
> > http://www.opengroup.org/onlinepubs/007904975/functions/timer_getoverrun.html
> >
> > So here is a patch to add this constant and a check that the overrun
> > variable never overflow. It's for 2.5.67 but should apply flawlessly to
> > 2.5.69 too.
> I think this is needed in glibc. I am not sure how that relates to
> kernel defines.

How can the glibc do things like that? :
> > #define posix_bump_timer(timr) do { \
> > (timr)->it_timer.expires += (timr)->it_incr; \
> > - (timr)->it_overrun++; \
> > + if ((timr)->it_overrun < DELAYTIMER_MAX)\
> > + (timr)->it_overrun++; \
> > }while (0)

In addition knowing that DELAYTIMER_MAX is dependant on the
implementation and that the implementation is now in the kernel I think
DELAYTIMER_MAX should be defined by the kernel. Then glibc can do its
usual trick of stealing all the constant from the kernel...

Eric