--- xinu/sys/chprio.c 2018/04/24 17:39:04 1.1.1.1 +++ xinu/sys/chprio.c 2018/04/24 17:40:08 1.1.1.2 @@ -14,24 +14,19 @@ SYSCALL chprio(pid,newprio) { int oldprio; struct pentry *pptr; - PStype ps; - disable(ps); + disable(); if (isbadpid(pid) || newprio<=0 || (pptr = &proctab[pid])->pstate == PRFREE) { - restore(ps); + restore(); return(SYSERR); } oldprio = pptr->pprio; pptr->pprio = newprio; - switch (pptr->pstate) { - case PRREADY: - insert( dequeue(pid), rdyhead, newprio); - case PRCURR: - resched(); - default: - break; - } - restore(ps); + if (pptr->pstate == PRREADY) { + dequeue(pid); + insert(pid, rdyhead, newprio); + } + restore(); return(oldprio); }