ksh/ksh-20110630-joblimit.patch

20 lines
602 B
Diff

diff -up ksh-20110630/src/cmd/ksh93/sh/jobs.c.pidlimit ksh-20110630/src/cmd/ksh93/sh/jobs.c
--- ksh-20110630/src/cmd/ksh93/sh/jobs.c.pidlimit 2011-10-06 08:38:59.800632676 +0200
+++ ksh-20110630/src/cmd/ksh93/sh/jobs.c 2011-10-06 08:39:51.434808924 +0200
@@ -1983,13 +1983,13 @@ void job_subrestore(void* ptr)
for(jp=bck.list; jp; jp=jp->next)
if (!jp->next)
end = jp;
-
if(end)
end->next = bp->list;
else
bck.list = bp->list;
bck.count += bp->count;
-
+ while(bck.count > shgd->lim.child_max)
+ job_chksave(0);
for(pw=job.pwlist; pw; pw=pwnext)
{
pwnext = pw->p_nxtjob;