Commit f41ebebd authored by Philip Withnall's avatar Philip Withnall
Browse files

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,
 • 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.
parent 925913d8
......@@ -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.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment