mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-26 07:33:47 +00:00
Fix setting the pipe capacity for subprocesses
* src/process.c (create_process) [F_SETPIPE_SZ]: Set the pipe capacity only if the required read-process-max is larger than the default capacity of the pipe. (Bug#66288)
This commit is contained in:
parent
aad8b5d78f
commit
1594d5f17a
@ -2189,8 +2189,14 @@ create_process (Lisp_Object process, char **new_argv, Lisp_Object current_dir)
|
||||
inchannel = p->open_fd[READ_FROM_SUBPROCESS];
|
||||
forkout = p->open_fd[SUBPROCESS_STDOUT];
|
||||
|
||||
#if defined(GNU_LINUX) && defined(F_SETPIPE_SZ)
|
||||
fcntl (inchannel, F_SETPIPE_SZ, read_process_output_max);
|
||||
#if defined(F_SETPIPE_SZ) && defined(F_GETPIPE_SZ)
|
||||
/* If they requested larger reads than the default system pipe
|
||||
capacity, try enlarging the capacity to match the request. */
|
||||
if (read_process_output_max > fcntl (inchannel, F_GETPIPE_SZ))
|
||||
{
|
||||
int readmax = clip_to_bounds (1, read_process_output_max, INT_MAX);
|
||||
fcntl (inchannel, F_SETPIPE_SZ, readmax);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user