mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-11-10 16:53:52 +01:00
100 lines
2.7 KiB
Plaintext
100 lines
2.7 KiB
Plaintext
*** ../bash-20070510/jobs.c Thu Mar 8 16:05:50 2007
|
|
--- jobs.c Fri May 18 11:40:14 2007
|
|
***************
|
|
*** 784,792 ****
|
|
{
|
|
old = js.j_firstj++;
|
|
while (js.j_firstj != old)
|
|
{
|
|
if (js.j_firstj >= js.j_jobslots)
|
|
js.j_firstj = 0;
|
|
! if (jobs[js.j_firstj])
|
|
break;
|
|
js.j_firstj++;
|
|
--- 784,794 ----
|
|
{
|
|
old = js.j_firstj++;
|
|
+ if (old >= js.j_jobslots)
|
|
+ old = js.j_jobslots - 1;
|
|
while (js.j_firstj != old)
|
|
{
|
|
if (js.j_firstj >= js.j_jobslots)
|
|
js.j_firstj = 0;
|
|
! if (jobs[js.j_firstj] || js.j_firstj == old) /* needed if old == 0 */
|
|
break;
|
|
js.j_firstj++;
|
|
***************
|
|
*** 798,806 ****
|
|
{
|
|
old = js.j_lastj--;
|
|
while (js.j_lastj != old)
|
|
{
|
|
if (js.j_lastj < 0)
|
|
js.j_lastj = js.j_jobslots - 1;
|
|
! if (jobs[js.j_lastj])
|
|
break;
|
|
js.j_lastj--;
|
|
--- 800,810 ----
|
|
{
|
|
old = js.j_lastj--;
|
|
+ if (old < 0)
|
|
+ old = 0;
|
|
while (js.j_lastj != old)
|
|
{
|
|
if (js.j_lastj < 0)
|
|
js.j_lastj = js.j_jobslots - 1;
|
|
! if (jobs[js.j_lastj] || js.j_lastj == old) /* needed if old == js.j_jobslots */
|
|
break;
|
|
js.j_lastj--;
|
|
***************
|
|
*** 901,904 ****
|
|
--- 905,909 ----
|
|
nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *));
|
|
|
|
+ js.c_reaped = js.j_ndead = 0;
|
|
for (i = j = 0; i < js.j_jobslots; i++)
|
|
if (jobs[i])
|
|
***************
|
|
*** 909,912 ****
|
|
--- 914,922 ----
|
|
nprev = j;
|
|
nlist[j++] = jobs[i];
|
|
+ if (jobs[i]->state == JDEAD)
|
|
+ {
|
|
+ js.j_ndead++;
|
|
+ js.c_reaped += processes_in_job (i);
|
|
+ }
|
|
}
|
|
|
|
***************
|
|
*** 914,918 ****
|
|
itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize);
|
|
itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0);
|
|
! itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, (j > 0) ? j - 1 : 0);
|
|
#endif
|
|
|
|
--- 924,929 ----
|
|
itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize);
|
|
itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0);
|
|
! itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, j);
|
|
! itrace ("realloc_jobs_list: js.j_ndead %d js.c_reaped %d", js.j_ndead, js.c_reaped);
|
|
#endif
|
|
|
|
***************
|
|
*** 964,968 ****
|
|
realloc_jobs_list ();
|
|
|
|
! return (js.j_lastj ? js.j_lastj + 1 : 0);
|
|
}
|
|
|
|
--- 975,983 ----
|
|
realloc_jobs_list ();
|
|
|
|
! #ifdef DEBUG
|
|
! itrace("compact_jobs_list: returning %d", (js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
|
|
! #endif
|
|
!
|
|
! return ((js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
|
|
}
|
|
|