diff options
-rw-r--r-- | sys/arch/vax/vax/trap.c | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/sys/arch/vax/vax/trap.c b/sys/arch/vax/vax/trap.c index a6be28ca91e..645de9d2eb1 100644 --- a/sys/arch/vax/vax/trap.c +++ b/sys/arch/vax/vax/trap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: trap.c,v 1.14 2001/05/05 21:26:41 art Exp $ */ +/* $OpenBSD: trap.c,v 1.15 2001/09/14 14:57:43 art Exp $ */ /* $NetBSD: trap.c,v 1.47 1999/08/21 19:26:20 matt Exp $ */ /* * Copyright (c) 1994 Ludd, University of Lule}, Sweden. @@ -286,16 +286,9 @@ if(faultdebug)printf("trap accflt type %lx, code %lx, pc %lx, psl %lx\n", p->p_priority = p->p_usrpri; if (want_resched) { /* - * Since we are curproc, clock will normally just change - * our priority without moving us from one queue to another - * (since the running process is not on a queue.) - * If that happened after we setrunqueue ourselves but before - * we swtch()'ed, we might not be on the queue indicated by - * our priority. + * We're being preempted. */ - splstatclock(); - setrunqueue(p); - mi_switch(); + preempt(NULL); while ((sig = CURSIG(p)) != 0) postsig(sig); } @@ -437,16 +430,9 @@ bad: p->p_priority = p->p_usrpri; if (want_resched) { /* - * Since we are curproc, clock will normally just change - * our priority without moving us from one queue to another - * (since the running process is not on a queue.) - * If that happened after we setrunqueue ourselves but before - * we swtch()'ed, we might not be on the queue indicated by - * our priority. + * We're being preempted. */ - splstatclock(); - setrunqueue(p); - mi_switch(); + preempt(NULL); while ((sig = CURSIG(p)) != 0) postsig(sig); } |