From https://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-004

Signed-off-by: Pascal de Bruijn <p.debruijn@unilogic.nl>

			     BASH PATCH REPORT
			     =================

Bash-Release:	5.0
Patch-ID:	bash50-004

Bug-Reported-by:	Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Bug-Reference-ID:	<87lg0g8aiw.fsf@fifthhorseman.net>
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2019-04/msg00076.html

Bug-Description:

In bash-5.0, the `wait' builtin without arguments waits for all children of the
shell. This includes children it `inherited' at shell invocation time. This
patch modifies the behavior to not wait for these inherited children, some
of which might be long-lived.

Patch (apply with `patch -p0'):

*** ../bash-5.0-patched/jobs.c	2018-12-06 11:44:34.000000000 -0500
--- b/jobs.c	2019-04-12 15:15:10.000000000 -0400
***************
*** 2489,2496 ****
    wait_procsubs ();
    reap_procsubs ();
! #if 1
    /* We don't want to wait indefinitely if we have stopped children. */
-   /* XXX - should add a loop that goes through the list of process
-      substitutions and waits for each proc in turn before this code. */
    if (any_stopped == 0)
      {
--- 2490,2495 ----
    wait_procsubs ();
    reap_procsubs ();
! #if 0
    /* We don't want to wait indefinitely if we have stopped children. */
    if (any_stopped == 0)
      {
*** ../bash-5.0/patchlevel.h	2016-06-22 14:51:03.000000000 -0400
--- b/patchlevel.h	2016-10-01 11:01:28.000000000 -0400
***************
*** 26,30 ****
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 3
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 4
  
  #endif /* _PATCHLEVEL_H_ */
