From 5cd9573bc638b433eae64331dc61188eae6e434e Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Fri, 11 Aug 2023 23:31:37 +0200 Subject: [PATCH] boot-time: Add comment about multithread-safety. * lib/boot-time.h (get_boot_time): Add comment, same as in readutmp.h. --- ChangeLog | 5 +++++ lib/boot-time.h | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index bfc2954a80..472349e5e4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2023-08-11 Bruno Haible + + boot-time: Add comment about multithread-safety. + * lib/boot-time.h (get_boot_time): Add comment, same as in readutmp.h. + 2023-08-11 Bruno Haible boot-time: Simplify execution. diff --git a/lib/boot-time.h b/lib/boot-time.h index 159a0056f9..401e854adb 100644 --- a/lib/boot-time.h +++ b/lib/boot-time.h @@ -27,7 +27,13 @@ extern "C" { /* Store the approximate time when the machine last booted in *P_BOOT_TIME, - and return 0. If it cannot be determined, return -1. */ + and return 0. If it cannot be determined, return -1. + + This function is not multithread-safe, since on many platforms it + invokes the functions setutxent, getutxent, endutxent. These + functions are needed because they may lock FILE (so that we don't + read garbage when a concurrent process writes to FILE), but their + drawback is that they have a common global state. */ extern int get_boot_time (struct timespec *p_boot_time); -- 2.39.5