Make all io process non-blocking and cancellable
jeremypw opened this issue · comments
Jeremy Wootten commented
Problem
There are extant reports of Files freezing/hanging under some circumstances and this is most likely due to using blocking calls like query_exists ()
and query_filetype ()
. e.g. #1858
Another example of this is loading a large folder (especially into IconView) - the rest of the interface freezes while the view is loaded and drawn. This may be partially alleviated by using dynamic views in Gtk4 though.
Proposal
We should always use asynchronous/cancellable calls to stop the whole interface freezing.
Prior Art (Optional)
No response