sor3listmodel: Do time-based batching

Stop a sorting step if it has run for more than 1.5ms.
This is an attempt to improve interactivity during
incremental sorting.
This commit is contained in:
Matthias Clasen
2020-07-11 15:12:17 -04:00
committed by Benjamin Otte
parent 3bdd9fe50f
commit 8ae3529bb3

View File

@@ -294,7 +294,7 @@ gtk_sor3_list_model_sort_cb (gpointer data)
start = self->sorted_to;
n_items = sort_array_get_size (&self->items);
end = MIN (512, n_items - start);
end = n_items - start;
changed_start = G_MAXUINT;
changed_end = 0;
@@ -303,6 +303,9 @@ gtk_sor3_list_model_sort_cb (gpointer data)
{
iqs (&self->items, self->sorted_to, &self->stack, self->sorter, &changed_start, &changed_end);
self->sorted_to++;
if (g_get_monotonic_time () - begin > 1500)
break;
}
if (self->sorted_to >= n_items)