[PATCH 1/5] date.c::datestamp: switch to reentrant localtime_r
- From
Doan Tran Cong Danh <congdanhqx@gmail.com>
- Date
- Nov 27, 2019, 15:13 UTC
- Message-ID
- <1e7e08b3c7a9d75d761b8ff63ddb291f6cca14e4.1574867409.git.congdanhqx@gmail.com>
- In-Reply-To
- <cover.1574867409.git.congdanhqx@gmail.com>
Originally, git was intended to be single-thread executable. `localtime(3)' can be used in such codebase for cleaner code.
Overtime, we're employing multithread in our code base.
Let's phase out `localtime(3)' with the favour of `localtime_r(3)' in this public interface.
Signed-off-by: Doan Tran Cong Danh <congdanhqx@gmail.com> --- date.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/date.c b/date.c index 041db7db4e..553f8e79a2 100644 --- a/date.c +++ b/date.c @@ -959,10 +959,11 @@ void datestamp(struct strbuf *out) { time_t now; int offset; + struct tm tm = { 0 }; time(&now); - offset = tm_to_time_t(localtime(&now)) - now; + offset = tm_to_time_t(localtime_r(&now, &tm)) - now; offset /= 60; date_string(now, offset, out);
-- 2.24.0.158.gd77a74f4dd.dirty