mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-26 22:16:16 +01:00
Bug 585189 – g_cancellable_reset() must be called in same thread ...
... as g_cancellable_cancel() Rework a g_critical() that would (rarely) trigger when _reset() was called in a thread different from _cancel() by making _reset() wait for the cancel function to be finished the same way g_cancellable_disconnect() uses.
This commit is contained in:
parent
7d4b706305
commit
ced88fd0de
@ -327,11 +327,11 @@ g_cancellable_reset (GCancellable *cancellable)
|
||||
|
||||
G_LOCK(cancellable);
|
||||
|
||||
if (cancellable->cancelled_running)
|
||||
while (cancellable->cancelled_running)
|
||||
{
|
||||
g_critical ("Can't reset a cancellable during an active operation");
|
||||
G_UNLOCK(cancellable);
|
||||
return;
|
||||
cancellable->cancelled_running_waiting = TRUE;
|
||||
g_cond_wait (cancellable_cond,
|
||||
g_static_mutex_get_mutex (& G_LOCK_NAME (cancellable)));
|
||||
}
|
||||
|
||||
if (cancellable->cancelled)
|
||||
|
Loading…
Reference in New Issue
Block a user