mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-26 14:06:15 +01:00
Fix two bugs: 1) If abs_time is NULL, should use infinite time. 2) Check
2002-11-23 Tor Lillqvist <tml@iki.fi> * gthread-win32.c (g_cond_timed_wait_win32_impl): Fix two bugs: 1) If abs_time is NULL, should use infinite time. 2) Check for current time already being past abs_time. (#99294, Christopher R. Palmer, fix by Sebastian Wilhelmi)
This commit is contained in:
parent
4009574b70
commit
f87a83cc15
@ -1,3 +1,10 @@
|
||||
2002-11-23 Tor Lillqvist <tml@iki.fi>
|
||||
|
||||
* gthread-win32.c (g_cond_timed_wait_win32_impl): Fix two bugs: 1)
|
||||
If abs_time is NULL, should use infinite time. 2) Check for
|
||||
current time already being past abs_time. (#99294, Christopher
|
||||
R. Palmer, fix by Sebastian Wilhelmi)
|
||||
|
||||
Mon Nov 4 14:45:24 2002 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gthread-posix.c gthread-solaris.c: Include <config.h>
|
||||
|
@ -291,10 +291,20 @@ g_cond_timed_wait_win32_impl (GCond *cond,
|
||||
g_return_val_if_fail (cond != NULL, FALSE);
|
||||
g_return_val_if_fail (entered_mutex != NULL, FALSE);
|
||||
|
||||
g_get_current_time (¤t_time);
|
||||
to_wait = (abs_time->tv_sec - current_time.tv_sec) * 1000 +
|
||||
(abs_time->tv_usec - current_time.tv_usec) / 1000;
|
||||
|
||||
if (!abs_time)
|
||||
to_wait = INFINITE;
|
||||
else
|
||||
{
|
||||
g_get_current_time (¤t_time);
|
||||
if (abs_time->tv_sec < current_time.tv_sec ||
|
||||
(abs_time->tv_sec == current_time.tv_sec &&
|
||||
abs_time->tv_usec <= current_time.tv_usec))
|
||||
to_wait = 0;
|
||||
else
|
||||
to_wait = (abs_time->tv_sec - current_time.tv_sec) * 1000 +
|
||||
(abs_time->tv_usec - current_time.tv_usec) / 1000;
|
||||
}
|
||||
|
||||
return g_cond_wait_internal (cond, entered_mutex, to_wait);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user