[vlc-devel] [PATCH v2 00/13] Execute medialib queries out of the UI thread

Romain Vimont rom1v at videolabs.io
Thu Nov 26 17:54:24 CET 2020


On Thu, Nov 26, 2020 at 05:10:32PM +0100, Romain Vimont wrote:
> v1: https://mailman.videolan.org/pipermail/vlc-devel/2020-November/140488.html
> 
> Changes since v1:
>  - fix ListCacheBase/BaseListCache rename in the middle of the patchset
>    (patches 5 and 11)
>  - fix crash on thumbnail generated if there is no cache (patch 6)
>  - make "internal" Runnable an inner-class private to AsyncTask (patch 10)
>  - remove useless includes (patch 11)
>  - change members visibility (patch 5)

I forgot to give a status about the remaining work listed in v1:

> There is still some work related to asynchronous loading:
> - the UI should show that some background tasks are running (to let the user
>   know that the visible data is not up-to-date)

I added (on a local branch) a property/signal/slot on the model to know
if something if some loading is pending. I don't know how we want to
present that in the UI, so nothing is plugged to it for now.

> - a "cache miss" item should be designed (currently, it shows "unknown
>   name" with a cone)

How should we present that? I think a small circle/loading icon for each
item would be fine.

> - the cache strategy is suboptimal (if items of consecutive cache
>   pages are visible simultaneously, the cache will invalidate its data
>   on each refresh);

It's not a priority for now, it "works".

> - there are still "small" freezes sometimes (~250ms), but not always, when
>   updating the UI list once the database query result is available; it
>   requires more investigations

I'm currently investigating. There are also other SQL accesses from the
main thread (in network/ for example, I don't know if it's related).

> - the list model abstract class (MLSlidingWindowModel) is templated, causing
>   big compilation times on every change (which probably does not work the cost,
>   since the concrete classes use QVariant to expose the data to Qt anyway)

I've changed that locally. I will propose a separate patchset later.

Regards


More information about the vlc-devel mailing list