[vlc-devel] [RFC 0/2] New executor API

Romain Vimont rom1v at videolabs.io
Wed Aug 26 21:55:16 CEST 2020


Thank you for your review.

On Wed, Aug 26, 2020 at 09:42:21PM +0300, Rémi Denis-Courmont wrote:
> Le keskiviikkona 26. elokuuta 2020, 20.19.55 EEST Romain Vimont a écrit :
> > The background worker API works, but it turns out to be complex to use
> > (IMO).
> (...)
> > I would like to propose a new API, hopefully easier to use.
> 
> I agree...
> 
> But.
> 
> Adding yet another API is not exactly making things better, unless the goal is 
> to replace/remove the existing one.

Yes, background_worker is used by:
 - the preparser
 - the fetcher
 - the thumbnailer

I adapted the preparser to demonstrate usage, but if it is ok I plan to
adapt the others and remove the background worker.

> (...)
> > In order to support the background worker features, a timeout can be
> > provided to automatically cancel/interrupt the task (which adds quite a lot
> > of complexity).
> 
> TBH, I don't really see the point. One Does Not Simply interrupt a runnable, 
> unless it is running in a dedicated process (which can be killed).

For example, the preparser must be "interrupted" if preparsing takes
more than x seconds. It currently works that way with the background
worker.

> Thus, the
> runnable need to handle this internally, and there's not much point exposing 
> it to the runner.

The action to interrupt must be provided by the user, because it depends
on the specific run() implementation. For the preparser for example, the
"interrupt" callback is basically calling
input_item_parser_id_Release().

Regards


More information about the vlc-devel mailing list