> > > So basically, this takes a long long value, and casts it to a long.
> > 
> > Yes, but that's not the entire story.
> > 
> > the function declaration is: long nextTimeout(int resolution)
> > 
> > So it would truncate anyway. But look at it closer. It
> > takes the value of timeval.tv_sec (your time_t / long long)
> > and mod's it with resolution (an int value). The only thing
> > it then does is multiply it by 1000L.
> > 
> > The only reason this function "broke" is C++'s std::max()
> > defined as a template function, requiring both args be of
> > the same typename. Since the original code uses 1000L
> > literal for the first arg, the compiler was having issues with
> > the long long as the second arg., but ...
> > 
> > What is long long % int? another int value? Yes, I realize
> > it would be a long long according to the compiler, but,
> > I fail to see where/how 0xFFFFFFFFFFFFFFFF % 0xFF would
> > ever be greater than 0xfe.
> > 
> > As is, the best you can expect from that function is a long
> > second argument for std::max(). Unless I'm completely missing
> > something here (and I'll certainly budget for that possibility).
> 
> You're completely missing the point.
> 
> We provide an opportunity to the entire community to fix things
> in the best way possible.
> 
> And you squander it.
> 
> The solution is to take all the subsystems and arguments to time_t,
> throughout the entire program, and then do the best from there.
> 
> Instead, you chose to prematurely downcast.

Now, before you say this is impossible or ridiculous, let me say this.

We did what I suggest to the entire base tree, before the kernel
changes were commited.  If we can do this to the entire base tree
system -- something much much larger than the average package, then
people working in the ports tree can at least try to not squander
the opportunity.

Please & thanks.

Reply via email to