Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: [PATCH] Enable sub-second timeout in zsystem flock



Cedric Ware wrote on Sun, 15 Mar 2020 18:36 +00:00:
> 
> Daniel Shahaf (Sunday 2020-03-15):
> > Cedric Ware wrote on Sun, Mar 15, 2020 at 17:03:24 +0100:
> > > I think that was about my earlier attempt to include the actual limit
> > > in the error message, not the input.  I reverted to a generic message,
> > > because I don't know how to make the test script check for an error
> > > message that depends on the system/compiler options.
> > 
> > How would the message depend on the system/compiler options?
> 
> Not with your suggestion, which I implemented.  My original idea was
> for an error message like "invalid timeout value, maximum is N", where
> N would be ZLONG_MAX / 2 / 1000000.  But to display the latter, I'd
> have needed a way to output a zlong, which has just now been proposed.
> Would it be useful?

I think the important part is to display the invalid input.  I don't
immediately see a situation in which I'd run into the input validation
error message and be glad that it spelled out the value of (2**63 / 2e6) for me.

> > > Still, would you like it better if I limited the interval to
> > > min(LONG_MAX, ZLONG_MAX / 2) instead of LONG_MAX?
> > 
> > Well, it sounds like that won't make any difference to bin_system_flock()'s
> > behaviour in practice (at least until someone has servers with uptimes
> > on the order of tens of kiloyears), so I don't have a strong preference.
> > I suppose I'd recommend whichever of these is more likely to remain
> > correct even if the code is copied elsewhere and adapted.
> 
> Changing the limit should be easy.  I see there is a macro minimum().
> Can I assume that a long can always be promoted to a zlong?

Given that we assume zlong is >= 64 bits long, the only way this can be
false is if long is int128_t (or larger) and zlong is int64_t, isn't it?
I don't know of any platform where that'd be true.

Cheers,

Daniel



Messages sorted by: Reverse Date, Date, Thread, Author