;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:10; Patch-File:T -*- ;;; Patch file for System version 121.25 ;;; Reason: ;;; Fix PAINFUL problem in scheduler. This is not the new scheduler which will appear in 122. ;;; Written 7-Feb-87 11:09:55 by RG at site LMI Cambridge ;;; while running on Alex from band 3 ;;; with Experimental System 121.17, Experimental Lambda-Diag 15.0, Experimental ZMail 70.2, Experimental KERMIT 32.0, Experimental Unix-Interface 10.0, Experimental Local-File 72.0, Experimental FILE-Server 21.0, Experimental Tape 13.0, microcode 1730, SDU Boot Tape 3.12, SDU ROM 102. ; From modified file DJ: L.SYS2; PROCES.LISP#193 at 7-Feb-87 11:09:56 #10R SYSTEM-INTERNALS#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS"))) (COMPILER::PATCH-SOURCE-FILE "SYS: SYS2; PROCES  " (DEFUN PROCESS-CONSIDER-RUNNABILITY (&OPTIONAL (PROCESS SELF)) "Add PROCESS to ACTIVE-PROCESSES if it should be there; remove it if not." (WITHOUT-INTERRUPTS (COND ((OR (PROCESS-ARREST-REASONS PROCESS) (NULL (PROCESS-RUN-REASONS PROCESS))) ;; Process is arrested, better not be active (LET ((APE (ASSQ PROCESS ACTIVE-PROCESSES))) (WHEN APE ;This might be "unsafe", so copy it. See SET-PROCESS-WAIT. (setf (process-wait-argument-list process) (copylist (process-wait-argument-list process))) (SETF (CAR APE) NIL) (PROCESS-REINSERT-AENTRY APE)) (TV::WHO-LINE-RUN-STATE-UPDATE))) ((ASSQ PROCESS ACTIVE-PROCESSES)) (T (PROCESS-ACTIVE-ENTRY PROCESS) ;; If process's stack group is in a bad state, ;; make it wait instead of actually running (unless it's current!). ;; ACTIVE is a bad state for a process which isn't running! (AND (NOT (PROCESS-SIMPLE-P PROCESS)) (NOT (SG-RESUMABLE-P (PROCESS-STACK-GROUP PROCESS))) CURRENT-PROCESS ;Prevents lossage in PROCESS-INITIALIZE (SEND PROCESS :FLUSH)) (TV::WHO-LINE-RUN-STATE-UPDATE))))) ))