diff mbox series

[1/5] date.c::datestamp: switch to reentrant localtime_r

Message ID 1e7e08b3c7a9d75d761b8ff63ddb291f6cca14e4.1574867409.git.congdanhqx@gmail.com (mailing list archive)
State New, archived
Headers show
Series drop non-reentrant time usage | expand

Commit Message

Đoàn Trần Công Danh Nov. 27, 2019, 3:13 p.m. UTC
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 mbox series

Patch

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);