William A. Rowe, Jr. wrote:

#define apr_time_usec(time) ((apr_int32_t)((time) % APR_USEC_PER_SEC))

which will take the big number's modulos before truncating to 32 bits.



Thanks. Speaking of the time_macros, I've only converted about half of the instances of "time / APR_USEC_PER_SEC" in httpd-2.0 and APR to use to the macros. The other half are operations on apr_interval_time_t, rather than apr_time_t.

If we change apr_time_t to use binary microseconds, we'll have to
decide whether to do the same for apr_interval_time_t.

I see strong points both for and against changing apr_interval_time_t:

 - Interval times often are added to absolute times, so they should
   use the same format as absolute times so the additions won't
   produce unexpected errors.

 - On the other hand, interval times often are used as arguments to
   things like select calls, so they should use decimal microseconds
   to prevent unexpected errors when a programmer says something like,
   "I need my poll to block for 5 seconds at most, so I'll pass it a
   timeout of 5,000,000."

Does anyone else have a strong opinion on whether interval times should
always use the same representation as apr_time_t?

Thanks,
--Brian




Reply via email to