Raymond Toy pushed to branch master at cmucl / cmucl

Commits:

1 changed file:

Changes:

  • src/code/run-program.lisp
    ... ... @@ -27,58 +27,12 @@
    27 27
     	  process-close process-pid process-p))
    
    28 28
     
    
    29 29
     
    
    30
    -;;;; Import WAIT3 from unix.
    
    31
    -
    
    32
    -(alien:def-alien-routine ("wait3" c-wait3) c-call:int
    
    33
    -  (status c-call:int :out)
    
    34
    -  (options c-call:int)
    
    35
    -  (rusage c-call:int))
    
    36
    -
    
    37 30
     (alien:def-alien-routine ("prog_status" c-prog-status) c-call:void
    
    38 31
       (pid c-call:int :out)
    
    39 32
       (what c-call:int :out)
    
    40 33
       (code c-call:int :out)
    
    41 34
       (corep c-call:int :out))
    
    42 35
     
    
    43
    -(eval-when (load eval compile)
    
    44
    -  (defconstant wait-wnohang #-svr4 1 #+svr4 #o100)
    
    45
    -  (defconstant wait-wuntraced #-svr4 2 #+svr4 4)
    
    46
    -  (defconstant wait-wstopped #-svr4 #o177 #+svr4 wait-wuntraced))
    
    47
    -
    
    48
    -(defun wait3 (&optional do-not-hang check-for-stopped)
    
    49
    -  "Return any available status information on child processed. "
    
    50
    -  (multiple-value-bind (pid status)
    
    51
    -		       (c-wait3 (logior (if do-not-hang
    
    52
    -					  wait-wnohang
    
    53
    -					  0)
    
    54
    -					(if check-for-stopped
    
    55
    -					  wait-wuntraced
    
    56
    -					  0))
    
    57
    -				0)
    
    58
    -    (cond ((or (minusp pid)
    
    59
    -	       (zerop pid))
    
    60
    -	   nil)
    
    61
    -	  ((eql (ldb (byte 8 0) status)
    
    62
    -		wait-wstopped)
    
    63
    -	   (values pid
    
    64
    -		   :stopped
    
    65
    -		   (ldb (byte 8 8) status)))
    
    66
    -	  ((zerop (ldb (byte 7 0) status))
    
    67
    -	   (values pid
    
    68
    -		   :exited
    
    69
    -		   (ldb (byte 8 8) status)))
    
    70
    -	  (t
    
    71
    -	   (let ((signal (ldb (byte 7 0) status)))
    
    72
    -	     (values pid
    
    73
    -		     (if (or (eql signal unix:sigstop)
    
    74
    -			     (eql signal unix:sigtstp)
    
    75
    -			     (eql signal unix:sigttin)
    
    76
    -			     (eql signal unix:sigttou))
    
    77
    -		       :stopped
    
    78
    -		       :signaled)
    
    79
    -		     signal
    
    80
    -		     (not (zerop (ldb (byte 1 7) status)))))))))
    
    81
    -
    
    82 36
     (defun prog-status ()
    
    83 37
       (multiple-value-bind (ret pid what code corep)
    
    84 38
           (c-prog-status)
    
    ... ... @@ -89,7 +43,6 @@
    89 43
     	      code
    
    90 44
     	      (not (zerop corep))))))
    
    91 45
     
    
    92
    -
    
    93 46
     
    
    94 47
     ;;;; Process control stuff.
    
    95 48