Signed-off-by: Wenchao Xia <[email protected]>
---
v2:
better comments and removed the code change localtime() to localtime_r().
---
oslib-win32.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/oslib-win32.c b/oslib-win32.c
index 9a443da..aa1268c 100644
--- a/oslib-win32.c
+++ b/oslib-win32.c
@@ -90,15 +90,17 @@ struct tm *gmtime_r(const time_t *timep, struct tm *result)
return p;
}
-/* FIXME: add proper locking */
+/* FIXME: make it thread safe in MinGW, remove the lock in qemu. */
struct tm *localtime_r(const time_t *timep, struct tm *result)
{
+ g_static_mutex_lock(&time_lock);
struct tm *p = localtime(timep);
memset(result, 0, sizeof(*result));
if (p) {
*result = *p;
p = result;
}
+ g_static_mutex_unlock(&time_lock);
return p;
}
--
1.7.1