-/* kern_synch.c 3.10 %H% */
+/* kern_synch.c 4.2 %G% */
#include "../h/param.h"
#include "../h/systm.h"
register p;
p = (pp->p_cpu & 0377)/16;
- p += PUSER + pp->p_nice - NZERO;
+ p += PUSER + 2*(pp->p_nice - NZERO);
if(p > 127)
p = 127;
if(p < curpri)
rip = u.u_procp;
rpp->p_stat = SIDL;
rpp->p_clktim = 0;
- rpp->p_flag = SLOAD | (rip->p_flag & SPAGI);
+ rpp->p_flag = SLOAD | (rip->p_flag & (SPAGI|SDETACH|SNUSIG));
if (isvfork) {
rpp->p_flag |= SVFORK;
rpp->p_ndx = rip->p_ndx;
rpp->p_rssize = 0;
rpp->p_wchan = 0;
rpp->p_slptime = 0;
- rpp->p_aveflt = rip->p_aveflt;
- rate.v_pgin += rip->p_aveflt;
- rpp->p_faults = 0;
+ rpp->p_pctcpu = 0;
+ rpp->p_cpticks = 0;
n = PIDHASH(rpp->p_pid);
p->p_idhash = pidhash[n];
pidhash[n] = rpp - proc;
if (procdup(rpp, isvfork))
return (1);
- spl6();
+ (void) spl6();
rpp->p_stat = SRUN;
setrq(rpp);
spl0();