Lines Matching refs:job

191 	for(pw=job.pwlist;pw;pw=pwnext)  in job_chldtrap()
261 …"ksh: job line %4d: reap pid=%d critical=%d signal=%d\n",__LINE__,getpid(),job.in_critical,sig) <=… in job_reap()
265 job.savesig = 0; in job_reap()
274 if(!(flags&WNOHANG) && !sh.intrap && job.pwlist) in job_reap()
291 if(pid<0 && errno==EINTR && (sig||job.savesig)) in job_reap()
296 job.waitsafe++; in job_reap()
302 …%4d: reap pid=%d critical=%d unknown job pid=%d pw=%x\n",__LINE__,getpid(),job.in_critical,pid,pw); in job_reap()
310 if(job.toclear) in job_reap()
331 px->p_nxtjob = job.pwlist; in job_reap()
332 job.pwlist = px; in job_reap()
336 if(pw->p_pgrp && pw->p_pgrp==job.curpgid && sh_isstate(SH_STOPOK)) in job_reap()
366 if(pw->p_pgrp && pw->p_pgrp==job.curpgid && pw->p_exit==SIGINT && sh_isstate(SH_STOPOK)) in job_reap()
384 job.numbjob--; in job_reap()
407 … with pid %d flags=%o complete with status=%x exit=%d\n",__LINE__,getpid(),job.in_critical,pw->p_j… in job_reap()
418 tcsetpgrp(JOBTTY,job.mypid); in job_reap()
432 job.numbjob = 0; in job_reap()
454 if(job.in_critical || vmbusy()) in job_waitsafe()
456 job.savesig = sig; in job_waitsafe()
457 job.waitsafe++; in job_waitsafe()
470 job.fd = JOBTTY; in job_init()
482 if((job.linedisc = ioctl(JOBTTY, FIOLOOKLD, 0)) <0) in job_init()
484 if(ioctl(JOBTTY,TIOCGETD,&job.linedisc) !=0) in job_init()
487 if(job.linedisc!=NTTYDISC && job.linedisc!=OTTYDISC) in job_init()
495 if(job.linedisc==NTTYDISC) in job_init()
496 job.linedisc = -1; in job_init()
499 job.mypgid = getpgrp(); in job_init()
501 if(job.mypgid<=0) in job_init()
510 if(job.mypgid<0 || !(ttynam=ttyname(JOBTTY))) in job_init()
517 job.mypgid = shp->pid; in job_init()
524 if(possible = (setpgid(0,job.mypgid)>=0) || errno==EPERM) in job_init()
527 while((job.mytgid=tcgetpgrp(JOBTTY)) != job.mypgid) in job_init()
529 if(job.mytgid == -1) in job_init()
546 if(job.linedisc>=0) in job_init()
555 ioctl(JOBTTY, FIOPUSHLD, &job.linedisc); in job_init()
566 job.linedisc = -1; in job_init()
592 job.suspend = (unsigned)my_stty.c_cc[VSUSP]; in job_init()
593 if(job.suspend == (unsigned char)CNSUSP) in job_init()
600 job.jobcontrol++; in job_init()
601 job.mypid = shp->pid; in job_init()
615 if(possible && !job.jobcontrol) in job_close()
619 else if(getpid() != job.mypid) in job_close()
624 for(pw=job.pwlist;pw;pw=pw->p_nxtjob) in job_close()
636 if(beenhere++ == 0 && job.pwlist) in job_close()
651 if(possible && setpgid(0,job.mypgid)>=0) in job_close()
652 tcsetpgrp(job.fd,job.mypgid); in job_close()
655 if(job.linedisc>=0) in job_close()
659 tty_get(job.fd,&my_stty); in job_close()
660 if (ioctl(job.fd, FIOPOPLD, 0) < 0) in job_close()
662 if (ioctl(job.fd, FIOPUSHLD, &job.linedisc) < 0) in job_close()
664 job.linedisc = NTTYDISC; in job_close()
665 ioctl(job.fd, FIOPUSHLD, &job.linedisc); in job_close()
668 tty_set(job.fd,TCSAFLUSH,&my_stty); in job_close()
670 if(ioctl(job.fd,TIOCSETD,&job.linedisc) !=0) in job_close()
677 if(possible && job.suspend==CNSUSP) in job_close()
679 tty_get(job.fd,&my_stty); in job_close()
681 tty_set(job.fd,TCSAFLUSH,&my_stty); in job_close()
684 job.jobcontrol = 0; in job_close()
691 tty_get(job.fd,&my_stty); in job_set()
695 tty_set(job.fd,TCSAFLUSH,&pw->p_stty); in job_set()
698 if((pw->p_flag&P_STOPPED) || tcgetpgrp(job.fd) == sh.pid) in job_set()
699 tcsetpgrp(job.fd,pw->p_fgrp); in job_set()
709 job_fgrp(pw,tcgetpgrp(job.fd)); in job_reset()
710 if(tcsetpgrp(job.fd,job.mypid) !=0) in job_reset()
718 if(tty_get(job.fd,&pw->p_stty) == 0) in job_reset()
721 tty_set(job.fd,TCSAFLUSH,&my_stty); in job_reset()
773 pw = job.pwlist; in job_walk()
860 if((px->p_flag&P_DONE) && job.waitall && !(flag&JOB_LFLAG)) in job_list()
864 if(px==job.pwlist) in job_list()
866 else if(px==job.pwlist->p_nxtjob) in job_list()
926 register struct process *pw=job.pwlist; in job_bystring()
938 pw = job.pwlist->p_nxtjob; in job_bystring()
968 if(pid==0 && job.jobcontrol) in job_kill()
1051 register struct process *pw = job.pwlist; in job_byname()
1090 for(pw=job.pwlist; pw; pw=pwnext) in job_clear()
1107 job.pwlist = NIL(struct process*); in job_clear()
1108 job.numpost=0; in job_clear()
1110 job.numbjob = 0; in job_clear()
1112 job.waitall = 0; in job_clear()
1113 job.curpgid = 0; in job_clear()
1114 job.toclear = 0; in job_clear()
1115 if(!job.freejobs) in job_clear()
1116 job.freejobs = (unsigned char*)malloc((unsigned)(j+1)); in job_clear()
1118 job.freejobs[j--] = 0; in job_clear()
1137 if(job.toclear) in job_post()
1148 job.numbjob++; in job_post()
1158 if((pw=job_byjid(pw->p_job)) != job.pwlist) in job_post()
1161 pw->p_nxtjob = job.pwlist; in job_post()
1162 job.pwlist = pw; in job_post()
1170 job.numpost++; in job_post()
1171 if(join && job.pwlist) in job_post()
1174 pw->p_nxtjob = job.pwlist->p_nxtjob; in job_post()
1175 pw->p_nxtproc = job.pwlist; in job_post()
1176 pw->p_job = job.pwlist->p_job; in job_post()
1183 pw->p_nxtjob = job.pwlist; in job_post()
1186 job.pwlist = pw; in job_post()
1189 if(!sh.outpipe || (sh_isoption(SH_PIPEFAIL) && job.waitall)) in job_post()
1195 if(killpg(job.curpgid,0)<0 && errno==ESRCH) in job_post()
1196 job.curpgid = pid; in job_post()
1197 pw->p_fgrp = job.curpgid; in job_post()
1203 … critical=%d job=%d pid=%d pgid=%d savesig=%d join=%d\n",__LINE__,getpid(),job.in_critical,pw->p_j… in job_post()
1204 pw->p_pid,pw->p_pgrp,job.savesig,join); in job_post()
1245 for(pw=job.pwlist; pw; pw=pw->p_nxtjob) in job_bypid()
1261 for(pw=job.pwlist;pw; pw = pw->p_nxtjob) in job_byjid()
1334 if(pw->p_pgrp && job.parent!= (pid_t)-1) in job_wait()
1339 …: job line %4d: wait pid=%d critical=%d job=%d pid=%d\n",__LINE__,getpid(),job.in_critical,jobid,p… in job_wait()
1341 …sfprintf(sfstderr,"ksh: job line %4d: wait pid=%d critical=%d flags=%o\n",__LINE__,getpid(),job.in… in job_wait()
1352 if(job.waitsafe) in job_wait()
1354 for(px=job.pwlist;px; px = px->p_nxtjob) in job_wait()
1425 if(!px || !sh_isoption(SH_PIPEFAIL) || !job.waitall) in job_wait()
1432 job.waitsafe = 0; in job_wait()
1433 nochild = job_reap(job.savesig); in job_wait()
1434 if(job.waitsafe) in job_wait()
1457 job.parent = 0; in job_wait()
1473 if(!job.waitall && sh_isoption(SH_PIPEFAIL)) in job_wait()
1478 for(pw=job.pwlist; pw; pw=px) in job_wait()
1523 pw->p_nxtjob = job.pwlist; in job_switch()
1524 job.pwlist = pw; in job_switch()
1537 job.waitall = 1; in job_switch()
1543 job.waitall = 0; in job_switch()
1602 …: job line %4d: drop pid=%d critical=%d pid=%d env=%d\n",__LINE__,getpid(),job.in_critical,pwtop->… in job_unpost()
1631 job.numpost--; in job_unpost()
1637 …sfprintf(sfstderr,"ksh: job line %4d: free pid=%d critical=%d job=%d\n",__LINE__,getpid(),job.in_c… in job_unpost()
1650 if(pw==job.pwlist) in job_unlink()
1652 job.pwlist = pw->p_nxtjob; in job_unlink()
1653 job.curpgid = 0; in job_unlink()
1656 for(px=job.pwlist;px;px=px->p_nxtjob) in job_unlink()
1676 for(j=0;job.freejobs[j] == UCHAR_MAX; j++); in job_alloc()
1689 freeword = &job.freejobs[j]; in job_alloc()
1706 job.freejobs[j] &= ~mask; in job_free()
1810 for(pw=job.pwlist; pw; pw=pwnext) in job_subrestore()
1831 return(job.waitsafe); in sh_waitsafe()
1837 …sfprintf(sfstderr,"ksh: job line %4d: fork pid=%d critical=%d parent=%d\n",__LINE__,getpid(),job.i… in job_fork()
1846 job.waitsafe = 0; in job_fork()
1847 job.in_critical = 0; in job_fork()