mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-12 15:36:17 +01:00
gtask: Ignore errors from g_thread_pool_push()
g_thread_pool_push() only returns an error if it fails to spawn a new thread. However, it unconditionally adds the task to its worker queue, so: • if _any_ threads exist in the pool, the task will eventually be handled; and • if _no_ threads exist in the pool, the task will be handled if one is eventually successfully spawned. If no more threads are ever spawned, the process probably has bigger problems than a single GTask which is taking forever to complete. https://bugzilla.gnome.org/show_bug.cgi?id=736806
This commit is contained in:
parent
925913d8dd
commit
f41ebebd34
@ -1288,10 +1288,8 @@ g_task_start_task_thread (GTask *task,
|
||||
task_thread_cancelled_disconnect_notify, 0);
|
||||
}
|
||||
|
||||
g_thread_pool_push (task_pool, g_object_ref (task), &task->error);
|
||||
if (task->error)
|
||||
task->thread_complete = TRUE;
|
||||
else if (g_private_get (&task_private))
|
||||
g_thread_pool_push (task_pool, g_object_ref (task), NULL);
|
||||
if (g_private_get (&task_private))
|
||||
{
|
||||
/* This thread is being spawned from another GTask thread, so
|
||||
* bump up max-threads so we don't starve.
|
||||
|
Loading…
Reference in New Issue
Block a user