client API: document requirement to block SIGPIPE

I noticed that the IPC code does not use MSG_NOSIGNAL or SO_NOSIGPIPE.
The former is "only" POSIX 2008 and also requires switching to sendto(),
while the latter is even less portable.

Not going to bother with this obsolete 80ies crap, just block SIGPIPE,
and instruct client API users to do the same.
This commit is contained in:
wm4 2014-12-24 13:25:33 +01:00
parent 98a80884da
commit 7f36d1532e
2 changed files with 3 additions and 1 deletions

View File

@ -117,6 +117,8 @@ extern "C" {
* (used through libass), ALSA, FFmpeg, and possibly more.
* - The FPU precision must be set at least to double precision.
* - On Windows, mpv will call timeBeginPeriod(1).
* - SIGPIPE should be blocked. Some parts rely on this signal not crashing the
* process (such as ffmpeg OpenSSL support, or the mpv IPC code).
* - On memory exhaustion, mpv will kill the process.
*
* Embedding the video window

View File

@ -488,7 +488,7 @@ int terminal_init(void)
setsigaction(SIGTTIN, SIG_IGN, 0, true);
setsigaction(SIGTTOU, SIG_IGN, 0, true);
// don't crash on SIGPIPE caused by semi-broken libraries
// get sane behavior, instead of hysteric UNIX-nonsense
setsigaction(SIGPIPE, SIG_IGN, 0, true);
getch2_poll();