Magellan Linux

Annotation of /trunk/bash/patches/bash-3.0-jobs.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 144 - (hide annotations) (download)
Tue May 8 20:06:05 2007 UTC (17 years, 1 month ago) by niro
File size: 1064 byte(s)
-import

1 niro 144 --- bash-3.0/tests/jobs4.sub.jobs 2004-05-06 14:02:41.000000000 +0100
2     +++ bash-3.0/tests/jobs4.sub 2004-09-08 16:07:25.305385245 +0100
3     @@ -18,5 +18,5 @@
4    
5     wait
6    
7     -cat &
8     +sleep 100 &
9     kill -1 %% && echo i killed it || echo could not kill it
10     --- bash-3.0/jobs.c.jobs 2004-09-08 16:07:25.081427747 +0100
11     +++ bash-3.0/jobs.c 2004-09-08 16:18:06.698604033 +0100
12     @@ -2475,6 +2475,7 @@
13     PROCESS *child;
14     pid_t pid;
15     int call_set_current, last_stopped_job, job, children_exited, waitpid_flags;
16     + static int wcontinued_not_supported = 0;
17    
18     call_set_current = children_exited = 0;
19     last_stopped_job = NO_JOB;
20     @@ -2488,7 +2489,15 @@
21     : 0;
22     if (sigchld || block == 0)
23     waitpid_flags |= WNOHANG;
24     + retry:
25     + if (wcontinued_not_supported)
26     + waitpid_flags &= ~WCONTINUED;
27     pid = WAITPID (-1, &status, waitpid_flags);
28     + if (pid == -1 && errno == EINVAL)
29     + {
30     + wcontinued_not_supported = 1;
31     + goto retry;
32     + }
33    
34     /* The check for WNOHANG is to make sure we decrement sigchld only
35     if it was non-zero before we called waitpid. */