[vlc-devel] [PATCH 2/2] module: don't probe next modules if killed
Rémi Denis-Courmont
remi at remlab.net
Thu Oct 24 11:51:44 CEST 2019
What is wrong? It breaks random and possibly unrelated code is what is wrong.
Le 24 octobre 2019 12:49:53 GMT+03:00, Thomas Guillem <thomas at gllm.fr> a écrit :
>
>On Thu, Oct 24, 2019, at 11:38, Rémi Denis-Courmont wrote:
>> This evidently breaks module probing after kill, which is of course
>wrong the same way that breaking polling is wrong.
>
>Yes, this is exactly when I'm trying to do. Break module probing after
>a kill. What is wrong with that ? What are the use-case where we would
>need a module after a kill ?
>
>>
>> Le 24 octobre 2019 10:17:27 GMT+03:00, Thomas Guillem
><thomas at gllm.fr> a écrit :
>>> This fixes the following case (it's just an example, it may fix some
>others).
>>>
>>> - a samba module is first probed, it asks for user credentials and
>show a
>>> dialog. The user cancel the media parsing instead of canceling
>the dialog
>>> (hit Ctrl-C on Desktop when a dialog is shown)
>>>
>>> - A next samba module is probed and will also ask for credential. A
>dialog
>>> will be shown even though the user asked to terminate VLC.
>>>
>>> To fix this issue, this commit prevent the next module to load if
>the current
>>> thread loading the module is killed.
>>>
>>> There is no possible race here, even if the thread is killed just
>after the
>>> second module is loaded. In that case next dialog, poll and read
>call will be
>>> interrupted and no dialog will be shown. src/modules/modules.c | 7
>+++++++
>>> 1 file changed, 7 insertions(+)
>>>
>>> diff --git a/src/modules/modules.c b/src/modules/modules.c
>>> index 2df5702f840..c3a4228aa22 100644
>>> --- a/src/modules/modules.c
>>> +++ b/src/modules/modules.c
>>> @@ -37,6 +37,7 @@
>>>
>>> #include <vlc_common.h>
>>> #include <vlc_modules.h>
>>> +#include <vlc_interrupt.h>
>>> #include "libvlc.h"
>>> #include "config/configuration.h"
>>> #include "vlc_arrays.h"
>>> @@ -199,6 +200,9 @@ module_t *(vlc_module_load)(struct vlc_logger
>*log, const char *capability,
>>> /* fall through */
>>> case VLC_ETIMEOUT:
>>> goto done;
>>> + default:
>>> + if (vlc_killed())
>>> + goto done;
>>> }
>>> }
>>> }
>>> @@ -220,6 +224,9 @@ module_t *(vlc_module_load)(struct vlc_logger
>*log, const char *capability,
>>> /* fall through */
>>> case VLC_ETIMEOUT:
>>> goto done;
>>> + default:
>>> + if (vlc_killed())
>>> + goto done;
>>> }
>>> }
>>> }
>>
>> --
>> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez
>excuser ma brièveté.
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
--
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20191024/25c7015c/attachment.html>
More information about the vlc-devel
mailing list