help-glpk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-glpk] things I don't understand in src/env/time.c + bugs + sug


From: Andrew Makhorin
Subject: Re: [Help-glpk] things I don't understand in src/env/time.c + bugs + suggested patch
Date: Sun, 29 Jan 2017 20:22:11 +0300

Hi Chris,

> > Not sure, but gmtime_s looks like a MSVC function. Could you point me
> > out where gmtime_s is standardized? Thanks.
> 
> gmtime_s is included in the (optional) annex K of C11. However, the
> parameters are reversed compared to the MSVC version and the standard
> one returns struct tm * while the MSVC one returns errno_t.
> 
> Moreover, some searching shows that gmtime_s is documented starting
> with VS 2010 (and _gmtime_s in VS 2005 and VS 2008). However, since VS
> 2005 gmtime returns a different pointer per thread [1], so there is no
> reason to use gmtime_s here - gmtime_s offers additional error
> checking for null pointers, which is not an issue in this code.
> 

Thank you for information.

As Heinrich noticed, gmtime, strerror, and strtok are non-thread-safe
(for example, in most recent version of glibc strtok just uses a static
pointer without a tls specifier), so in a multi-threaded environment
thread-safe versions of these functions should be used. The problem I
encountered is that gcc (Debian 4.7.2-5) 4.7.2 installed on my Linux
machine doesn't have gmtime_s, strerror_s, and strtok_s. It is unclear
what to do if no thread-safe version of these functions are available.


Andrew Makhorin




reply via email to

[Prev in Thread] Current Thread [Next in Thread]