summaryrefslogtreecommitdiffstats
path: root/osdep/subprocess-posix.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 01:13:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 01:13:14 +0000
commit60e8a3d404f0640fa5a3f834eae54b4f1fb9127d (patch)
tree1da89a218d0ecf010c67a87cb2f625c4cb18e7d7 /osdep/subprocess-posix.c
parentAdding upstream version 0.37.0. (diff)
downloadmpv-60e8a3d404f0640fa5a3f834eae54b4f1fb9127d.tar.xz
mpv-60e8a3d404f0640fa5a3f834eae54b4f1fb9127d.zip
Adding upstream version 0.38.0.upstream/0.38.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'osdep/subprocess-posix.c')
-rw-r--r--osdep/subprocess-posix.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/osdep/subprocess-posix.c b/osdep/subprocess-posix.c
index 0656ec5..c75d267 100644
--- a/osdep/subprocess-posix.c
+++ b/osdep/subprocess-posix.c
@@ -281,7 +281,7 @@ void mp_subprocess2(struct mp_subprocess_opts *opts,
if (pid)
kill(pid, SIGKILL);
killed_by_us = true;
- break;
+ goto break_poll;
}
struct mp_subprocess_fd *fd = &opts->fds[n];
if (fd->on_read) {
@@ -316,6 +316,8 @@ void mp_subprocess2(struct mp_subprocess_opts *opts,
}
}
+break_poll:
+
// Note: it can happen that a child process closes the pipe, but does not
// terminate yet. In this case, we would have to run waitpid() in
// a separate thread and use pthread_cancel(), or use other weird