]> Zhao Yanbai Git Server - minix.git/commitdiff
RTS_SYS_LOCK and do_runctl()
authorTomas Hruby <tom@minix3.org>
Tue, 6 Apr 2010 11:18:04 +0000 (11:18 +0000)
committerTomas Hruby <tom@minix3.org>
Tue, 6 Apr 2010 11:18:04 +0000 (11:18 +0000)
- No need for RTS_SYS_LOCK as there are no tasks anymore.

kernel/proc.h
kernel/system/do_runctl.c

index b4b38155a52347db9cb9af3745553f7ee7de363a..a059ecf70649d62b2f372a8e94de95b7a299c9f9 100644 (file)
@@ -128,7 +128,6 @@ struct proc {
 #define RTS_PAGEFAULT  0x400   /* process has unhandled pagefault */
 #define RTS_VMREQUEST  0x800   /* originator of vm memory request */
 #define RTS_VMREQTARGET        0x1000  /* target of vm memory request */
-#define RTS_SYS_LOCK   0x2000  /* temporary process lock flag for systask */
 #define RTS_PREEMPTED  0x4000  /* this process was preempted by a higher
                                   priority process and we should pick a new one
                                   to run. Processes with this flag should be
index f5b243f63988152a136f1f2f08c49284aac4a804..a724d01b42d5ba9a74dacc294307ebafd6b5a3c5 100644 (file)
@@ -22,7 +22,7 @@ PUBLIC int do_runctl(struct proc * caller, message * m_ptr)
  * of RTS_PROC_STOP, and send a SIGSNDELAY signal later when the process is done
  * sending (ending the delay). Used by PM for safe signal delivery.
  */
-  int proc_nr, action, flags, delayed;
+  int proc_nr, action, flags;
   register struct proc *rp;
 
   /* Extract the message parameters and do sanity checking. */
@@ -39,17 +39,13 @@ PUBLIC int do_runctl(struct proc * caller, message * m_ptr)
    * Note that asynchronous messages are not covered: a process using SENDA
    * should not also install signal handlers *and* expect POSIX compliance.
    */
-  if (action == RC_STOP && (flags & RC_DELAY)) {
-       RTS_SET(rp, RTS_SYS_LOCK);
 
+  if (action == RC_STOP && (flags & RC_DELAY)) {
        if (RTS_ISSET(rp, RTS_SENDING) || (rp->p_misc_flags & MF_SC_DEFER))
                rp->p_misc_flags |= MF_SIG_DELAY;
 
-       delayed = (rp->p_misc_flags & MF_SIG_DELAY);
-
-       RTS_UNSET(rp, RTS_SYS_LOCK);
-
-       if (delayed) return(EBUSY);
+       if (rp->p_misc_flags & MF_SIG_DELAY)
+               return (EBUSY);
   }
 
   /* Either set or clear the stop flag. */