Use threaded time functions (#3199)

This commit is contained in:
Paulo Matos 2020-05-21 15:45:22 +02:00 committed by GitHub
parent 08d4698934
commit 62c9a79c68
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -333,7 +333,7 @@ rktio_date_t *rktio_seconds_to_date(rktio_t *rktio, rktio_timestamp_t seconds, i
SYSTEMTIME localTime; SYSTEMTIME localTime;
#else #else
# define CHECK_TIME_T time_t # define CHECK_TIME_T time_t
struct tm *localTime; struct tm localTime;
#endif #endif
CHECK_TIME_T now; CHECK_TIME_T now;
char *tzn; char *tzn;
@ -373,10 +373,9 @@ rktio_date_t *rktio_seconds_to_date(rktio_t *rktio, rktio_timestamp_t seconds, i
} }
#else #else
if (get_gmt) if (get_gmt)
localTime = gmtime(&now); success = gmtime_r(&now, &localTime);
else else
localTime = localtime(&now); success = localtime_r(&now, &localTime);
success = !!localTime;
#endif #endif
if (success) { if (success) {
@ -414,21 +413,21 @@ rktio_date_t *rktio_seconds_to_date(rktio_t *rktio, rktio_timestamp_t seconds, i
} }
# define TZN_STRDUP(s) s # define TZN_STRDUP(s) s
#else #else
hour = localTime->tm_hour; hour = localTime.tm_hour;
min = localTime->tm_min; min = localTime.tm_min;
sec = localTime->tm_sec; sec = localTime.tm_sec;
month = localTime->tm_mon + 1; month = localTime.tm_mon + 1;
day = localTime->tm_mday; day = localTime.tm_mday;
year = (uintptr_t)localTime->tm_year + 1900; year = (uintptr_t)localTime.tm_year + 1900;
wday = localTime->tm_wday; wday = localTime.tm_wday;
yday = localTime->tm_yday; yday = localTime.tm_yday;
if (get_gmt) if (get_gmt)
dst = 0; dst = 0;
else else
dst = localTime->tm_isdst; dst = localTime.tm_isdst;
tzoffset = 0; tzoffset = 0;
if (!get_gmt) { if (!get_gmt) {
@ -453,12 +452,12 @@ rktio_date_t *rktio_seconds_to_date(rktio_t *rktio, rktio_timestamp_t seconds, i
tzoffset = -timezone; tzoffset = -timezone;
# endif # endif
# ifdef USE_TM_GMTOFF_FIELD # ifdef USE_TM_GMTOFF_FIELD
tzoffset = localTime->tm_gmtoff; tzoffset = localTime.tm_gmtoff;
# endif # endif
# ifdef USE_TZNAME_VAR # ifdef USE_TZNAME_VAR
tzn = MSC_IZE(tzname)[localTime->tm_isdst]; tzn = MSC_IZE(tzname)[localTime.tm_isdst];
# elif defined(USE_TM_ZONE_FIELD) # elif defined(USE_TM_ZONE_FIELD)
tzn = localTime->tm_zone; tzn = localTime.tm_zone;
# else # else
tzn = NULL; tzn = NULL;
# endif # endif