mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-04 20:55:48 +01:00
Allow concurrent child processes
When multiple child processes are running, closing the stdin of one child did not send EOF or cause POLLNVAL, as long as a dup()'ed filedes still existed. This fixes an issue when running an mp3 encoder while the video monitor is visible, and will allow to concurrently run multiple mp3 encoders or other child processes. Previously this caused Ardour to hang indefinitely in CmdPipeWriter ``` _proc->close_stdin(); _proc->wait(); // << here ```
This commit is contained in:
parent
70df054d68
commit
3715154a8e
2 changed files with 36 additions and 2 deletions
|
|
@ -920,6 +920,7 @@ SystemExec::close_stdin()
|
|||
if (pin[1] < 0) {
|
||||
return;
|
||||
}
|
||||
fsync (pin[1]);
|
||||
close_fd (pin[0]);
|
||||
close_fd (pin[1]);
|
||||
fsync (pout[0]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue