mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 03:16:17 +01:00
Use io_prio as mainloop prio for async-emulation (#579449)
I'm not sure why we used the elaborate formula to convert the io-priority to the priority of the mainloop idle when emulating async i/o with idles. However, it causes the default io priority to be less than the normal idle prio, so the i/o won't be scheduled if there is an idle outstanding. There is really no great mapping to use here, doing blocking i/o in an idle of any prio is generally bad and apps doing a lot of async i/o should initialize threads. However, if we use the io-priority directly we at least avoid the starvation problem above and make things easier to understand.
This commit is contained in:
parent
9fba812884
commit
8cb481fd5f
@ -257,7 +257,7 @@ g_io_scheduler_push_job (GIOSchedulerJobFunc job_func,
|
||||
/* Threads not available, instead do the i/o sync inside a
|
||||
* low prio idle handler
|
||||
*/
|
||||
job->idle_tag = g_idle_add_full (G_PRIORITY_DEFAULT_IDLE + 1 + io_priority / 10,
|
||||
job->idle_tag = g_idle_add_full (io_priority,
|
||||
run_job_at_idle,
|
||||
job, job_destroy);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user