Change `process-reason' primitive to return 0 when the process is
authorChris Hanson <org/chris-hanson/cph>
Fri, 8 Mar 1991 03:10:16 +0000 (03:10 +0000)
committerChris Hanson <org/chris-hanson/cph>
Fri, 8 Mar 1991 03:10:16 +0000 (03:10 +0000)
running, rather than signalling an error.

v7/src/microcode/prosproc.c
v7/src/microcode/uxproc.c

index a0e59270b7b421b9f07062c626f4db3b0e376bcb..e3a294daa394369eccbb5051bd5a89d10bed9b5c 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/prosproc.c,v 1.3 1991/03/01 00:55:35 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/prosproc.c,v 1.4 1991/03/08 03:10:16 cph Exp $
 
 Copyright (c) 1990-91 Massachusetts Institute of Technology
 
@@ -297,19 +297,14 @@ DEFINE_PRIMITIVE ("PROCESS-STATUS", Prim_process_status, 1, 1,
 
 DEFINE_PRIMITIVE ("PROCESS-REASON", Prim_process_reason, 1, 1, 
   "Return the termination reason of process PROCESS-NUMBER.\n\
-It is an error if the process is running.\n\
 This is a nonnegative integer, which depends on the process's status:\n\
+  running => zero;\n\
   stopped => the signal that stopped the process;\n\
   exited => the exit code returned by the process;\n\
   signalled => the signal that killed the process.")
 {
   PRIMITIVE_HEADER (1);
-  {
-    Tprocess process = (arg_process (1));
-    if ((OS_process_status (process)) == process_status_running)
-      error_bad_range_arg (1);
-    PRIMITIVE_RETURN (long_to_integer (OS_process_reason (process)));
-  }
+  PRIMITIVE_RETURN (long_to_integer (OS_process_reason (arg_process (1))));
 }
 
 DEFINE_PRIMITIVE ("PROCESS-JOB-CONTROL-STATUS", Prim_process_jc_status, 1, 1, 
index 105d3148e6f531a8f5003020b0f88c20ceeace3b..d59b330628c18e59e3c149021f5c29be9b6b9fb0 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/uxproc.c,v 1.5 1991/03/01 00:56:10 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/uxproc.c,v 1.6 1991/03/08 03:10:04 cph Exp $
 
 Copyright (c) 1990-91 Massachusetts Institute of Technology
 
@@ -205,6 +205,7 @@ void
 DEFUN (OS_process_deallocate, (process), Tprocess process)
 {
   (PROCESS_STATUS (process)) = process_status_free;
+  (PROCESS_REASON (process)) = 0;
   (PROCESS_ID (process)) = 0;
 }
 \f
@@ -266,6 +267,7 @@ DEFUN (OS_make_subprocess,
       /* In the parent process. */
       (PROCESS_ID (child)) = child_pid;
       (PROCESS_STATUS (child)) = process_status_running;
+      (PROCESS_REASON (child)) = 0;
       (PROCESS_JC_STATUS (child)) = child_jc_status;
       if (child_jc_status == process_jc_status_jc)
        STD_VOID_SYSTEM_CALL
@@ -453,6 +455,7 @@ DEFUN (OS_process_continue_background, (process), Tprocess process)
   if ((PROCESS_STATUS (process)) == process_status_stopped)
     {
       (PROCESS_STATUS (process)) = process_status_running;
+      (PROCESS_REASON (process)) = 0;
       OS_process_send_signal (process, SIGCONT);
     }
   transaction_commit ();
@@ -468,6 +471,7 @@ DEFUN (OS_process_continue_foreground, (process), Tprocess process)
   if ((PROCESS_STATUS (process)) == process_status_stopped)
     {
       (PROCESS_STATUS (process)) = process_status_running;
+      (PROCESS_REASON (process)) = 0;
       OS_process_send_signal (process, SIGCONT); 
     }
   {