Oh, for crying out loud. Apps do not need microsecond resolution for time since epoch. None of them do. They need microsecond resolution for small interval timers. The vast majority of APR time usages are for epoch times or intervals in seconds. There is nothing that the app can do to "work around" APR's funky data type because APR forces the conversion on every function whether that function needs microseconds or not. Using raw time_t is not an option because APR is supposed to be providing an interface to a time_now function that is portable. The fact of the matter is that using the same data structure for two different purposes is the wrong design for the portability library's basic interface to time, which is why none of the operating systems work that way.
The trade-off is obvious -- just look at the profile results. If you aren't willing to use that as the determinant of which interface is better, then we shouldn't be using APR for a Web server.
....Roy
