From a955065cda3dcaa80058520ba55dc0bf5c8d3f08 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Tue, 4 Jul 2017 09:40:45 +0100 Subject: Delay processing "disown" for superjob. This is a job forked from the current shell when a job partly running from the current shell was suspended. When all associated processes started from the main shell are finished the job is continued and at this point the disown can complete. --- Doc/Zsh/jobs.yo | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'Doc') diff --git a/Doc/Zsh/jobs.yo b/Doc/Zsh/jobs.yo index 6262dd244..70559f2d8 100644 --- a/Doc/Zsh/jobs.yo +++ b/Doc/Zsh/jobs.yo @@ -49,6 +49,12 @@ in the parent shell. Thus the behaviour is different from the case where the function was never suspended. Zsh is different from many other shells in this regard. +One additional side effect is that use of tt(disown) with a job +created by suspending shell code in this fashion is delayed: the +job can only be disowned once any process started from the parent +shell has terminated. At that point, the disowned job disappears +silently from the job list. + The same behaviour is found when the shell is executing code as the right hand side of a pipeline or any complex shell construct such as tt(if), tt(for), etc., in order that the entire block of code -- cgit 1.4.1