mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
ffmpeg: Ignore SIGPIPE
On systems which deliver SIGPIPE (Unices), a broken pipe will currently result in the immediate termination of the ffmpeg process (the default disposition as required by POSIX). This is undesirable, because while the broken pipe is likely fatal to useful cleanup of whatever component is writing to it, there might be other components which can do useful cleanup - for example, a muxer on another stream may still need to write indexes to complete a file. Therefore, set the signal disposition for SIGPIPE to ignore the signal - the call which caused the signal will fail with EPIPE and the error will be propagated upwards like any other I/O failure on a single stream.
This commit is contained in:
parent
04e4ab44d7
commit
74cf4a75f7
@ -406,6 +406,9 @@ void term_init(void)
|
||||
#ifdef SIGXCPU
|
||||
signal(SIGXCPU, sigterm_handler);
|
||||
#endif
|
||||
#ifdef SIGPIPE
|
||||
signal(SIGPIPE, SIG_IGN); /* Broken pipe (POSIX). */
|
||||
#endif
|
||||
#if HAVE_SETCONSOLECTRLHANDLER
|
||||
SetConsoleCtrlHandler((PHANDLER_ROUTINE) CtrlHandler, TRUE);
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user