mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-05-31 03:51:14 -03:00
Stop storing block_io in job_t
Prior to this fix, a job would hold onto any IO redirections from its
parent. For example:
begin
echo a
end < file.txt
The "echo a" job would hold a reference to the I/O redirection.
The problem is that jobs then extend the life of pipes until the job is
cleaned up. This can prevent pipes from closing, leading to hangs.
Fix this by not storing the block IO; this ensures that jobs do not
prolong the life of pipes.
Fixes #6397
This commit is contained in:
17
tests/checks/self-signal-usr1.fish
Normal file
17
tests/checks/self-signal-usr1.fish
Normal file
@@ -0,0 +1,17 @@
|
||||
#RUN: %fish %s
|
||||
|
||||
# See #6397
|
||||
|
||||
function f --on-signal USR1
|
||||
begin
|
||||
echo a
|
||||
echo b
|
||||
end | while read -l line
|
||||
echo $line
|
||||
end
|
||||
end
|
||||
|
||||
kill -USR1 $fish_pid
|
||||
|
||||
#CHECK: a
|
||||
#CHECK: b
|
||||
Reference in New Issue
Block a user