GTask: Avoid resorting

When a task is cancelled, we want to move it to the front
of the queue - our sort function does that for us, but there
is no need to resort the entire queue here, we can just
move the one item and be done with it. This uses just-introduced
threadpool api for this purpose.

https://bugzilla.gnome.org/show_bug.cgi?id=751160
This commit is contained in:
Matthias Clasen 2015-06-18 10:36:23 -04:00
parent 9486f697bb
commit e419e1c4e2

View File

@ -1296,7 +1296,10 @@ task_thread_cancelled (GCancellable *cancellable,
{
GTask *task = user_data;
g_task_thread_pool_resort ();
/* Move this task to the front of the queue - no need for
* a complete resorting of the queue.
*/
g_thread_pool_move_to_front (task_pool, task);
g_mutex_lock (&task->lock);
task->thread_cancelled = TRUE;