On 2015-02-12 12:14:03 -0300, Alvaro Herrera wrote: > Asif Naeem wrote: > > Don’t you feel gettimeofday() implementation is incomplete in current > > state, Is there any other example of function port in PG that could lead to > > crash if its related init_* function is not called earlier ?. As mentioned > > by Michael, it seems not enough documented (release notes etc), at least it > > need to give warning etc instead of simply crash the related process. > > GetSystemTimeAsFileTime() function is less precise but it is quite fast and > > less CPU intensive then GetSystemTimePreciseAsFileTime() function, > > GetSystemTimePreciseAsFileTime() can effect performance of an application. > > With the proposed patch, gettimeofday() function is more safe and more > > versatile, a contrib may use it as per its need of precision. Thanks. > > Ideally we would the Precise dance automatically, without requiring the > program to call an initialization function. Otherwise, programs may > never be updated to use Precise rather than the stock function. I guess > this is the reason Andres prefers a crash: to force programs to be > updated to include the initialization step. > > I wonder if it would work to set the function initially to the > initialization function, so that on the first call the Precise version, > if it exists, is detected (or the stock version otherwise) and set as > the function to call for later -- without requiring a jump in every > subsequent execution of gettimeofday(), of course. The initialization > function itself would have to return the value returned by > GetSystemTimePreciseAsFileTime, of course.
Yes, that sounds like a good idea.
Greetings,
Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services