mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-28 08:26:14 +01:00
asyncqueue: fix timeout math on 32bit systems
88182d375e
caught this issue in
g_async_queue_timed_pop() but failed to fix the same bug in the _unlocked()
variant.
This is only a problem on 32bit systems. On 64bit systems, the tv_sec
in a timeval is already 64 bits, so no overflow occurs.
https://bugzilla.gnome.org/show_bug.cgi?id=722604
This commit is contained in:
parent
4af9b8e9cb
commit
356fe2cec6
@ -600,8 +600,7 @@ g_async_queue_timed_pop (GAsyncQueue *queue,
|
|||||||
if (end_time != NULL)
|
if (end_time != NULL)
|
||||||
{
|
{
|
||||||
m_end_time = g_get_monotonic_time () +
|
m_end_time = g_get_monotonic_time () +
|
||||||
((gint64)end_time->tv_sec * G_USEC_PER_SEC + end_time->tv_usec -
|
((gint64) end_time->tv_sec * G_USEC_PER_SEC + end_time->tv_usec - g_get_real_time ());
|
||||||
g_get_real_time ());
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
m_end_time = -1;
|
m_end_time = -1;
|
||||||
@ -644,8 +643,7 @@ g_async_queue_timed_pop_unlocked (GAsyncQueue *queue,
|
|||||||
if (end_time != NULL)
|
if (end_time != NULL)
|
||||||
{
|
{
|
||||||
m_end_time = g_get_monotonic_time () +
|
m_end_time = g_get_monotonic_time () +
|
||||||
(end_time->tv_sec * G_USEC_PER_SEC + end_time->tv_usec -
|
((gint64) end_time->tv_sec * G_USEC_PER_SEC + end_time->tv_usec - g_get_real_time ());
|
||||||
g_get_real_time ());
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
m_end_time = -1;
|
m_end_time = -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user