"Myria" <myriac...@cox.net> wrote:

I noticed that Windows does not define HAVE_GMTIME_R or HAVE_LOCALTIME_R. It is true that Visual Studio's C runtime library doesn't have gmtime_r, but it has a somewhat-equivalent API, gmtime_s. gmtime_s's prototype is different, reversing the order of the two parameters and returning an errno error code instead of the tm* parameter. (gmtime_s took its reentrancy more seriously than gmtime_r, and doesn't modify the thread-local variable errno.) The same applies to localtime_r existing in Visual Studio as localtime_s.

Without opening a can of worms [*] by using this new _gmtime64_s() function, we could make a thread-safe Curl_gmtime() in libcurl too? It shouldn't be that hard; a call to gmtime64() protected inside a critical-section and with a push/pop of errno.

localtime_r() isn't used anywhere AFAICS. So what's this HAVE_LOCALTIME_R
all about?

By "worms", I mean using a MSVCRT.DLL function in e.g. Vista that isn't 
available
 in Win-XP. So a libcurl.dll would not work everwhere.

--gv
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to