[FFmpeg-devel] [PATCH] avformat/avisynth: remove atexit() handler

Stephen Hutchinson qyot27 at gmail.com
Sun Jul 7 20:46:40 EEST 2024


On 7/7/24 9:50 AM, Andreas Rheinhardt wrote:
> 
> avisynth_context_destroy() is currently always called while holding the
> lock (i.e. avisynth_mutex). Is this even necessary? It is clear that
> avisynth_load_library() (and the check for whether it should be called)
> need the lock, but does anything else (like
> avs_create_script_environment) really need it?
> 

Threading control is a topic that definitely goes over my head, so
my honest answer would be that I don't know.  But what I would say is
that if I correctly understand the order of execution inside the
demuxer, library, and script environment, AviSynth loading its own
plugins occurs after avs_create_script_environment is called in the
client program.

If avs_load_library and its check need the lock in place,
is it supposed to be assumed that then AviSynth handles
loading/unloading its plugins purely on its own without the
overarching lock, or is that cascaded loading something that
needs the lock in place throughout the process (because
avisynth_context_destroy is what ultimately calls
avs_delete_script_environment and unloads whatever plugins were
loaded by AviSynth)?


More information about the ffmpeg-devel mailing list