(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) (FILECREATED "12-Nov-2023 20:34:03" ("compiled on " {DSK}larry>il>medley>sources>PROC.;1) "11-Nov-2023 07:37:04" bcompl'd in "FULL 11-Nov-2023 ..." dated "11-Nov-2023 07:37:06") (FILECREATED "29-Jul-2023 11:47:41" {DSK}larry>il>medley>sources>PROC.;7 176222 :EDIT-BY "lmm" :CHANGES-TO (VARS PROCCOMS) (FNS \BACKGROUND.PROCESS) :PREVIOUS-DATE "28-Jul-2023 21:06:03" {DSK}larry>il>medley>sources>PROC.;6) PROCESSWORLD :D8 (L (0 FLG) F 12 \WINDOWWORLD) o @gj`d h``gh h`d&j`h`i h`o`hahWi H<`ldKdkg o `j``\`A O*O LhhL_dgO OY}jOjheOdhV`Od8Od"Od:Oghk Oid iO O_OOh__O_O&_d]< MM M g Z*ghgggggi g *ghgggggi g &ghgggi `h I-HLogggggi Y#`II I `` IJ``^`g oN (875 RAID 862 RETFROM 844 \START.PROCESSES 809 MEMB 793 \RUN.PROCESS 786 \MAKE.PROCESS0 757 ADD.PROCESS 688 ADD.PROCESS 657 FIND.PROCESS 646 ADD.PROCESS 605 FIND.PROCESS 594 ADD.PROCESS 552 FIND.PROCESS 537 \RUN.PROCESS 530 \MAKE.PROCESS0 469 \RELEASE.PROCESS 458 \RELEASE.PROCESS 329 \RELEASE.PROCESS 211 CREATE.EVENT 195 CREATE.EVENT 155 CURSOR 109 RETTO 60 PUTWINDOWPROP 21 \RELEASE.PROCESS) (857 PROCESSWORLD 850 PSTAT.QUIT 835 \PROCESSES 830 PROCESS 825 %#SCHEDULER# 819 \TTY.PROCESS 804 \PROCESSES 799 \TTY.PROCESS 778 PROCESS 771 \PROCESSES 765 \PROCESSES 750 SCHEDULE 745 ALWAYS 740 RESTARTABLE 735 EXEC 730 NAME 710 PROCESS 705 PROCESS 700 \TIMERQHEAD 693 \TIMERQHEAD 681 SCHEDULE 676 SYSTEM 671 RESTARTABLE 664 \TIMER.PROCESS 652 \TIMER.PROCESS 639 SCHEDULE 634 SYSTEM 629 RESTARTABLE 624 MOUSE 619 NAME 612 \MOUSE.PROCESS 600 MOUSE 587 SCHEDULE 582 SYSTEM 577 RESTARTABLE 572 BACKGROUND 567 NAME 560 \BACKGROUND.PROCESS 547 BACKGROUND 522 PROCESS 512 PROCESS 444 PROCESS 433 DELETED 428 PROCESS 416 PROCESS 404 PROCESS 391 PROCESS 381 \TTY.PROCESS 369 PROCESS 353 PROCESS 340 PROCESS 319 EXEC 312 PROCESS 299 PROCESSQUEUE 285 PROCESSQUEUE 279 PROCESSQUEUE 271 \PROCESSES 255 \PROCESSES 247 \HIGHEST.PRIORITY.QUEUE 241 PROCESSQUEUE 236 \HIGHEST.PRIORITY.QUEUE 227 PROCESS 222 %#SCHEDULER# 216 \PROCESS.AFTEREXIT.EVENT 200 \TTY.PROCESS.EVENT 190 TTY 184 %#SCHEDULER# 164 |PROCESSTYPE#| 145 \STACKOVERFLOW 134 PROCESS 129 %#SCHEDULER# 117 \RUNNING.PROCESS 103 PSTAT.QUIT 97 %#SCHEDULER# 91 %#SCHEDULER# 80 PROCESS 72 %#SCHEDULER# 67 \RUNNING.PROCESS 54 PROCESS 49 \TopLevelTtyWindow 42 WINDOW 37 \TopLevelTtyWindow 32 \TTY.PROCESS 13 \PROCESSES 5 OFF) ( 869 "??? Process error - strange result from \Start.Processes" 725 (\PROC.REPEATEDLYEVALQT) 206 "After Exit" 123 "Processes are already on") ADD.PROCESS :D8 (L (0 ARGS) P 22 \INTERRUPTABLE) e``@Hjka[K Hdlla_l_(_&O(dO&Ldgi]Qka_O(a_dgO _gOOdgO_gO_OdgO_ gO_"OdgO_$zgO_lOdgO_ZgONOdgi?gO3Hl"OgOgOiO_OOOO_O(l_(ߴCLgLdgh.iLgLdgiggL \`djdidKdLdJdjdMkj0dO.dO 0dO"6dO$8dOdO$dO*dOZ6`]Bh`h_^_h`dH| i Js Z&JH!Jd Jd i M_H%Od Od i ~Ns@@i Yd j𣿱HH@iIH>`h 0 O[HIg `_Ig _ HkIHg`Mg OO`OghOI6\IHlL` h 8\HIlLH&K &E_OOh__O&_(499 \NCONC2 459 \APPEND2 450 NOTIFY.EVENT 388 PROCESSPROP 347 PROCESSPROP 326 PROCESSPROP 297 \GETSYSBUF 288 \CARET.DOWN 237 FIND.PROCESS 210 OPENWP 205 WFROMDS 199 PROCESS.TTY 188 HASTTYWINDOWP 166 OPENWP 161 WFROMDS 155 PROCESS.TTY 145 HASTTYWINDOWP 130 FIND.PROCESS 119 OPENWP 114 WFROMDS 108 PROCESS.TTY) (491 PROCESS 485 PROCESS 466 PROCESS 445 \TTY.PROCESS.EVENT 429 PROCESS 413 OFF 406 \CURRENTKEYACTION 396 \CURRENTKEYACTION 383 OFF 374 \CURRENTKEYACTION 369 INTERRUPTS 362 \TTY.PROCESS 342 INTERRUPTS 333 \DEFAULTKEYACTION 321 KEYACTION 281 \CARET.UP 272 PROCESS 244 PROCESS 227 PROCESS 92 \PROCESSES 72 \PROCESSES 56 TTY.PROCESS.DEFAULT 46 PROCESS 26 \TTY.PROCESS 16 \TTY.PROCESS 9 PROCESS 4 \TTY.PROCESS) () TTY.PROCESSP :D8 (L (0 PROC)) `h@``NIL (21 \TTY.PROCESS 16 \RUNNING.PROCESS 4 \RUNNING.PROCESS) () PROCESS.TTY :D8 (L (0 PROC) F 0 \TERM.OFD) >@,@d@d j@ bd`P @g (59 PROCESS.EVALV 34 FIND.PROCESS) (54 \TERM.OFD 42 \RUNNING.PROCESS 19 PROCESS 9 PROCESS) () GIVE.TTY.PROCESS :D8 (L (0 WINDOW)) l@d @ @ .H`ll0@ .d j@gh @Y@kIh(85 TTY.PROCESS 77 PUTWINDOWPROP 21 \INSUREWINDOW 14 \ILLEGAL.ARG 6 WINDOWP) (94 WINDOW 71 PROCESS 58 PROCESS 48 WINDOW 34 LASTMOUSEBUTTONS) () ALLOW.BUTTON.EVENTS :D8 NIL `g ` (29 SPAWN.MOUSE) (24 \RUNNING.PROCESS 16 MOUSE 9 PROCESS 4 \RUNNING.PROCESS) () SPAWN.MOUSE :D8 (L (0 INTERNAL) P 0 \INTERRUPTABLE) @@Wg Y%ghgggg ig -gi Ij0g@@`nlKJ ggK d Kk[hd(150 FIND.PROCESS 144 CONCAT 76 \SET.PROCESS.NAME 63 FIND.PROCESS 51 ADD.PROCESS 15 FIND.PROCESS) (138 %# 133 OLDMOUSE 115 PROCESS.MAXMOUSE 102 MOUSE 95 PROCESS 83 PROCESS 70 OLDMOUSE 58 OLDMOUSE 45 SYSTEM 40 RESTARTABLE 35 MOUSE 30 NAME 23 \MOUSE.PROCESS 10 MOUSE) () \WAIT.FOR.TTY :D8 NIL `d`h` (25 AWAIT.EVENT) (20 \TTY.PROCESS.EVENT 11 \TTY.PROCESS 4 \RUNNING.PROCESS) () WAIT.FOR.TTY :D8 (L (1 NEEDWINDOW 0 MSECS) F 2 \OLDTTY F 3 \WINDOWWORLD F 4 \TERM.OFD) `g-` ```` ci```Sc A"ig T X H @l @`Id ```II h` i(192 TTY.PROCESS 178 TIMEREXPIRED? 148 AWAIT.EVENT 133 \CLOCK0 122 OPENW 115 OPENWP 109 WFROMDS 102 \GETSTREAM 58 TTY.PROCESS 29 SPAWN.MOUSE) (187 \RUNNING.PROCESS 166 \TTY.PROCESS 161 \RUNNING.PROCESS 154 \RUNNING.PROCESS 141 \TTY.PROCESS.EVENT 97 INPUT 79 \TTY.PROCESS 74 \RUNNING.PROCESS 67 \RUNNING.PROCESS 53 \RUNNING.PROCESS 46 \TTY.PROCESS 41 \RUNNING.PROCESS 34 \RUNNING.PROCESS 24 \RUNNING.PROCESS 16 MOUSE 9 PROCESS 4 \RUNNING.PROCESS) () RESET :D8 NIL zfkH`jkHkHdidgdgihhH `kHjkHkH l Xjjd` o` (119 PRIN1 104 TAB 58 \SMASHRETURN) (114 PROMPTWINDOW 99 PROMPTWINDOW 63 \PROC.RESETME 43 \REPEATEDLYEVALQT 35 \MAKE.PROCESS0) ( 109 "Can't find top of stack!!!") ERROR! :D8 NIL g` (19 RETTO 4 ABORT) (14 \PROC.RESETME 9 \MAKE.PROCESS0) () PROCESSPROP :D8 (L (0 ARGS) P 5 OLDVALUE) ekalaBII YyJdgIgIJdgIgIJdgIgI$|JdgI.hgI0WJdgI6CgI82JdgI*gIB@` @` @k @l@@@hh@h>KR@j@jj@hh(229 PUTWINDOWPROP 142 \INVALIDATE.PROCESS.WINDOW 136 REMHASH 112 DREMOVE 69 \UNQUEUE.TIMER 49 \UNQUEUE.EVENT 29 \DECUSECOUNT) (287 PROCESS 274 PROCESS 263 PROCESS 248 PROCESS 238 PROCESS 223 PROCESS 213 PROCESS 202 PROCESS 184 PROCESS 178 PROCESS 172 PROCESS 160 PROCESS 149 PROCESS 131 \PROCESS.NAME.TABLE 124 PROCESS 117 \PROCESSES 107 \PROCESSES 94 PROCESS 80 \PROCESSES 56 PROCESS 36 PROCESS 16 PROCESS 5 PROCESS) () \UNWIND.PROCESS :D8 (L (0 P) F 0 \PROC.KILLME) 6@d@g@kkjhgP (51 RETTO) (45 \MAKE.PROCESS0 30 PROCESS 21 DELETED 16 PROCESS 6 PROCESS) () \MAYBEBLOCK :D8 (F 0 \INTERRUPTABLE) P(7 BLOCK) NIL () \BACKGROUND.PROCESS :D8 (P 0 \BACKGROUND) (```djI(35 BLOCK) (18 BACKGROUNDFNS 12 \IGNORE.BACKGROUND 4 \IGNORE.BACKGROUND) () \MOUSE.PROCESS :D8 (P 1 \MOUSEBUSY P 0 \OLDTTY F 3 \WINDOWWORLD) 0`g\g Z/Jdg 9Joi J h`k0`gi S``d`H`Hi h`h&N(179 BLOCK 157 TTY.PROCESS 119 WINDOW.MOUSE.HANDLER 111 \SET.PROCESS.NAME 77 DEL.PROCESS 70 \SET.PROCESS.NAME 54 PROCESS.RETURN 47 PROCESS.EVALV 32 FIND.PROCESS) (170 PROCESS 165 \RUNNING.PROCESS 147 \RUNNING.PROCESS 137 \TTY.PROCESS 131 \RUNNING.PROCESS 125 \RUNNING.PROCESS 105 MOUSE 100 \RUNNING.PROCESS 90 PROCESS 85 \RUNNING.PROCESS 42 \MOUSEBUSY 27 MOUSE 19 MOUSE 12 PROCESS 7 \RUNNING.PROCESS) ( 64 "DeadMouse") \TIMER.PROCESS :D8 (P 1 \INTERRUPTABLE) 8`!H Z  J` (51 \RUN.PROCESS 38 TIMEREXPIRED? 23 BLOCK) (46 PSTAT.TIMEDOUT 31 PROCESS 13 PROCESS 4 \TIMERQHEAD) () \PROCESS.RELEASE.LOCKS :D8 (L (0 P)) @d2h2 (23 RELEASE.MONITORLOCK) (16 PROCESS 6 PROCESS) () \SET.PROCESS.NAME :D8 (L (2 INTERNAL 1 NEWNAME 0 PROC) P 0 \INTERRUPTABLE) BNA dg)dg dggAbA bAAioA b0B(A lAJoI b Ik԰@A@` @AA` (165 REMHASH 144 PUTHASH 116 FIND.PROCESS 109 CONCAT 90 FIND.PROCESS 74 ERROR 54 MKSTRING 8 TYPENAME) (160 \PROCESS.NAME.TABLE 150 PROCESS 139 \PROCESS.NAME.TABLE 128 PROCESS 40 LISTP 32 STRINGP 23 NEW-ATOM 14 LITATOM) ( 103 "#" 68 "Illegal Process Name") \PROCESS.DEFPRINT :D8 (L (1 STREAM 0 PROC)) @A@o (19 \DEFPRINT.BY.NAME) (7 PROCESS) ( 14 "Process") \START.PROCESSES :D8 (P 0 \INTERRUPTABLE) ``Y`J[JZfdI8K\jl%oK KjLIf K]jM Ifhl!oI r(150 \MP.ERROR 123 \DECUSECOUNT 96 \PROC.RESUME 70 \MP.ERROR) (130 PROCESS 111 PROCESS 103 PROCESS 82 PROCESS 77 \RUNNING.PROCESS 51 PROCESS 32 PROCESSQUEUE 21 PROCESSQUEUE 14 \HIGHEST.PRIORITY.QUEUE 7 %#SCHEDULER#) ( 144 "No runnable process!!" 64 "Process's stack has been released!") \PROCESS.GO.TO.SLEEP :D8 (L (3 DELETEFLG 2 TIMERP 1 TIMEOUT 0 EVLOCK) P 0 \INTERRUPTABLE)  `! O@@j@j@OjO_d_OO3OOOOhhi-OBAOZJl A O kOh`M^M]jdL:N_jl%oN NjOLf N_jO Lfhl!oL n(451 \MP.ERROR 424 \DECUSECOUNT 395 \PROC.RESUME 368 \MP.ERROR 297 \ENQUEUE.TIMER 285 \CLOCK0 239 \RELEASE.PROCESS 206 \ENQUEUE.EVENT/LOCK 178 \MP.ERROR 137 \MP.ERROR 18 BLOCK) (431 PROCESS 410 PROCESS 402 PROCESS 380 PROCESS 375 \RUNNING.PROCESS 348 PROCESS 329 PROCESSQUEUE 318 PROCESSQUEUE 311 \HIGHEST.PRIORITY.QUEUE 274 FIXP 266 PROCESS 254 PROCESS 214 PROCESS 193 PROCESS 160 PROCESS 153 PROCESSQUEUE 146 PROCESS 118 PROCESSQUEUE 111 PROCESSQUEUE 99 PROCESSQUEUE 79 PROCESSQUEUE 69 PROCESS 58 PROCESS 45 EVENT 33 EVENT 25 EVENT 7 \RUNNING.PROCESS) ( 445 "No runnable process!!" 362 "Process's stack has been released!" 171 "Running process has no NEXT pointer" 132 "Inconsistent process queue state") \PROC.RESUME :D8 (L (1 OLDFX 0 FRAME)) 7fkHjkHHlkH@l kH@l kAd (52 \DECUSECOUNT) NIL () \RUN.PROCESS :D8 (L (2 BRUTALLY 1 REASON 0 PROC) P 5 \INTERRUPTABLE)  @@2@dkBo@ @ j@lI@I @j@ HZ"HH@@@\LX`-H@KK@KJ)@JJ@H@@k@Ah(110 \UNQUEUE.TIMER 91 \UNQUEUE.EVENT 45 ERROR) (258 PROCESS 247 PROCESS 237 PROCESSQUEUE 227 PROCESS 216 PROCESS 210 PROCESS 193 PROCESS 182 PROCESS 176 PROCESS 167 PROCESSQUEUE 159 \PROC.RUN.NEXT.FLG 140 PROCESS 134 PROCESSQUEUE 128 PROCESSQUEUE 117 PROCESSQUEUE 98 PROCESS 69 PROCESS 52 PROCESS 25 PROCESS 13 PROCESS 5 PROCESS) ( 39 "Attempt to run already running process") \SUSPEND.PROCESS :D8 (L (1 EVENT 0 PROC) P 0 \INTERRUPTABLE) @@dk@j@Y\ZJd@LJ(J@@IIJIIhh@h4ZdL𲦿l!o j@ @[A @A hA@K hb(211 \UNQUEUE.EVENT 199 \ENQUEUE.EVENT/LOCK 177 \UNQUEUE.TIMER 158 \MP.ERROR) (184 PROCESS 165 PROCESS 133 PROCESS 119 PROCESSQUEUE 113 PROCESSQUEUE 104 PROCESSQUEUE 93 PROCESSQUEUE 81 PROCESS 75 PROCESS 58 PROCESS 47 PROCESSQUEUE 39 PROCESS 28 PROCESS 12 PROCESS) ( 153 "Can't find running process in its queue") \UNQUEUE.TIMER :D8 (L (1 NOERROR 0 PROC)) W`Hd @H@   XAo@ @h @jh(62 ERROR) (79 PROCESS 69 PROCESS 44 PROCESS 33 PROCESS 27 PROCESS 14 PROCESS 4 \TIMERQHEAD) ( 56 "Process not found on timer queue") \ENQUEUE.TIMER :D8 (L (0 PROC) P 0 \INTERRUPTABLE) c@`d J$`[d@ JKJ j@J I@ hKJ JY ZNIL (92 PROCESS 81 PROCESS 69 PROCESS 60 PROCESS 47 PROCESS 34 PROCESS 25 \PROCTIMER.SCRATCH 13 PROCESS 7 \TIMERQHEAD) () \GET.PRIORITY.QUEUE :D8 (L (0 PRIORITY)) o`!H*`d@@HYXd@H`d@dIdHI JJJNIL (104 PROCESSQUEUE 97 \HIGHEST.PRIORITY.QUEUE 70 |PROCESSQUEUETYPE#| 56 PROCESSQUEUE 47 PROCESSQUEUE 33 PROCESSQUEUE 27 \HIGHEST.PRIORITY.QUEUE 15 |PROCESSQUEUETYPE#| 4 \HIGHEST.PRIORITY.QUEUE) () \PROCESS.INIT :D8 (L (0 DONTRESET) F 0 *DEFAULT-EXTERNALFORMAT*) g h`dgdg dg dgdPhdgRdgPdgNdgHdgBdg@dg>dghg gl$o (57 \REPEATEDLYEVALQT 52 INITIALEVALQT 44 \MP.ERROR 25 \TURN.ON.PROCESSES 20 \KEYBOARDON 15 CLEARSTK) (30 OK 10 **CLEAR** 5 \RUNNING.PROCESS) ( 39 "Unexpected (RETTO T)") \PROC.REPEATEDLYEVALQT :D8 (NAME \REPEATEDLYEVALQT) ,` i i (40 EVALQT 34 \RESETSYSTEMSTATE 28 INPUT 21 OUTPUT 14 TTYDISPLAYSTREAM 4 INITIALEVALQT) (9 \TopLevelTtyWindow) () BREAK.PROCESS :D8 (L (0 PROC)) <@d@d j@ d`g h(56 \PROCESS.MAKEFRAME 45 \DOHELPINTERRUPT1 31 FIND.PROCESS) (51 \DOHELPINTERRUPT1 37 \RUNNING.PROCESS 16 PROCESS 6 PROCESS) () \SELECTPROCESS :D8 (L (0 TITLE) F 12 INTERRUPTMENUFONT) n ``RH`A OOZIHRIJZM_[H/KI*O0jKdgK_OOh__O_O&_J`1 OO JIo gIhhIHJHo gHhho`LJdMd@di dWdg dgjdndhdN [d6dJ_OOh__O_0B` b ` ZJ`gJJm؎gJ`J`hohi b B`Igg gH Bgo `gl H B XH i@LjgL ]hdAdgjH Md hgkAdglgl'(278 RELSTK 269 BAKTRACE 247 \MAKESTACKP 218 DSPRESET 208 \INSUREWINDOW 201 DSPFONT 195 FONTCREATE 175 PUTWINDOWPROP 158 DSPSCROLL 146 ATTACHWINDOW 120 \INSUREWINDOW 113 CREATEW 37 \INSUREWINDOW 23 WINDOWP 15 ATTACHEDWINDOWS) (309 BTV! 297 BTV* 285 BTV 257 BT 240 \PSWOP.SELECTED 225 PROCESS 188 GACHA 181 BACKTRACEFONT 165 PASSTOMAINCOMS 152 OFF 140 LOCALCLOSE 135 JUSTIFY 129 PROCESS.STATUS.WINDOW 96 PROCBACKTRACEHEIGHT 86 PROCBACKTRACEHEIGHT 77 BOTTOM 58 TOP 49 PROCBACKTRACEHEIGHT 32 PROCESS.STATUS.WINDOW 10 PROCESS.STATUS.WINDOW) ( 170 (MOVEW SHRINKW BURYW) 106 "Process backtrace") \INVALIDATE.PROCESS.WINDOW :D8 NIL T`dI B`gg Xg$`gH hkg` h(80 DSPFILL 62 PUTWINDOWPROP 37 PUTWINDOWPROP 15 ACTIVEWP) (75 PROCESS.STATUS.WINDOW 70 INVERT 56 OLDBUTTONEVENTFN 51 PROCESS.STATUS.WINDOW 43 \UPDATE.PROCESS.WINDOW 32 \UPDATE.PROCESS.WINDOW 27 BUTTONEVENTFN 22 PROCESS.STATUS.WINDOW 7 PROCESS.STATUS.WINDOW) () \UPDATE.PROCESS.WINDOW :D8 (L (0 WINDOW)) x@g `JIh#i JKKiJIkg` @g@gh X @kHh(110 PUTWINDOWPROP 104 PUTWINDOWPROP 85 DSPFILL 42 PROCESS.STATUS.WINDOW 13 GETWINDOWUSERPROP) (98 OLDBUTTONEVENTFN 92 BUTTONEVENTFN 80 PROCESS.STATUS.WINDOW 75 INVERT 51 PROCESS 18 \PROCESSES 8 PROCS) () (PRETTYCOMPRINT PROCCOMS) (RPAQQ PROCCOMS ((COMS (DECLARE%: DONTCOPY (EXPORT (RECORDS PROCESS)) (RECORDS PROCESSQUEUE) ( CONSTANTS \PSTAT.WAITING \PSTAT.RUNNING \PSTAT.DELETED)) (INITRECORDS PROCESS PROCESSQUEUE) ( SYSRECORDS PROCESS PROCESSQUEUE)) (COMS (* ; "User entries") (FNS PROCESSWORLD ADD.PROCESS DEL.PROCESS PROCESS.RETURN FIND.PROCESS MAP.PROCESSES PROCESSP RELPROCESSP RESTART.PROCESS WAKE.PROCESS SUSPEND.PROCESS PROCESS.RESULT PROCESS-STATUS PROCESS.FINISHEDP) (FNS THIS.PROCESS TTY.PROCESS TTY.PROCESSP PROCESS.TTY GIVE.TTY.PROCESS ALLOW.BUTTON.EVENTS SPAWN.MOUSE \WAIT.FOR.TTY WAIT.FOR.TTY) (FNS RESET ERROR!) (INITVARS (TTY.PROCESS.DEFAULT (QUOTE (EXEC MOUSE))) (\TTY.PROCESS.EVENT) ( \TTY.PROCESS) (\PROCESS.NAME.TABLE (HASHARRAY 30 NIL (FUNCTION STRING-EQUAL-HASHBITS) (FUNCTION STRING-EQUAL)))) (GLOBALVARS TTY.PROCESS.DEFAULT \TTY.PROCESS.EVENT \PROCESS.NAME.TABLE) (FNS PROCESSPROP PROCESS.NAME PROCESS.WINDOW) (PROP ARGNAMES PROCESSPROP ADD.PROCESS) (COMS (* ; "Temporary") (P (MOVD? (QUOTE PROCESS.RETURN) (QUOTE KILL.ME) NIL T)))) (COMS (FNS DISMISS BLOCK WAITFORINPUT \WAITFORSYSBUFP) (* ; "Used to be a GLOBALRESOURCES") (DECLARE%: DONTCOPY (RESOURCES \DISMISSTIMER)) (INITRESOURCES \DISMISSTIMER)) (COMS (FNS EVAL.AS.PROCESS EVAL.IN.TTY.PROCESS) (* ;; "The PROCESS.WAIT macro is an augmentation to BLOCK, waiting for a condition to come true, or a timeout, or a wakeup" ) (MACROS PROCESS.WAIT) (FNS PROCESS.READ PROCESS.EVALV PROCESS.EVAL \PROCESS.EVAL1 PROCESS.APPLY \PROCESS.APPLY1) (* ; "Standard values for WAKEREASON -- PSTAT.TIMEDOUT is the only public one") (VARS (PSTAT.WAKEUP "default WakeUp") (PSTAT.TIMEDOUT "{time interval expired}") (PSTAT.QUIT "Quit") ( \PSTAT.NORESULT "{no result yet}")) (GLOBALVARS PSTAT.WAKEUP PSTAT.TIMEDOUT PSTAT.QUIT \PSTAT.NORESULT )) (COMS (* ; "Event stuff") (DECLARE%: DONTCOPY (RECORDS EVENT)) (INITRECORDS EVENT) (SYSRECORDS EVENT) (FNS CREATE.EVENT NOTIFY.EVENT AWAIT.EVENT \UNQUEUE.EVENT \ENQUEUE.EVENT/LOCK \EVENT.DEFPRINT) (MACROS AWAIT.CONDITION) (INITVARS (\PROCESS.AFTEREXIT.EVENT)) (GLOBALVARS \PROCESS.AFTEREXIT.EVENT)) (COMS (* ; "Monitor stuff") (DECLARE%: DONTCOPY (RECORDS MONITORLOCK) (MACROS .RELEASE.LOCK.)) ( INITRECORDS MONITORLOCK) (SYSRECORDS MONITORLOCK) (FNS OBTAIN.MONITORLOCK CREATE.MONITORLOCK RELEASE.MONITORLOCK SI::MONITOR-UNWIND MONITOR.AWAIT.EVENT \MONITORLOCK.DEFPRINT) (MACROS WITH.MONITOR WITH.FAST.MONITOR)) (COMS (EXPORT (SPECVARS \BACKGROUND) (GLOBALVARS \IGNORE.BACKGROUND)) (INITVARS ( \BACKGROUND NIL) (\IGNORE.BACKGROUND T)) (FNS \MAKE.PROCESS0 \MAKE.PROCESS1 \PROCESS.MOVEFRAME \RELEASE.PROCESS \UNWIND.PROCESS \MAYBEBLOCK \BACKGROUND.PROCESS \MOUSE.PROCESS \TIMER.PROCESS \PROCESS.RELEASE.LOCKS \SET.PROCESS.NAME \PROCESS.DEFPRINT) (FNS \START.PROCESSES \PROCESS.GO.TO.SLEEP \PROC.RESUME \RUN.PROCESS \SUSPEND.PROCESS \UNQUEUE.TIMER \ENQUEUE.TIMER \GET.PRIORITY.QUEUE) ( DECLARE%: DONTCOPY (MACROS \RESCHEDULE))) (COMS (FNS \PROCESS.INIT \PROCESS.EVENTFN \PROCESS.BEFORE.LOGOUT \PROCESS.AFTER.EXIT \PROCESS.RESET.TIMERS \PROC.AFTER.WINDOWWORLD \TURN.ON.PROCESSES) (* ; "Redefinitions") (FNS \PROC.CODEFORTFRAME \PROC.REPEATEDLYEVALQT)) (COMS (* ; "switching stacks") (FNS BREAK.PROCESS \SELECTPROCESS \PROCESS.MAKEFRAME \PROCESS.MAKEFRAME0)) ( INITVARS (%#MYHANDLE#) (%#SCHEDULER#) (\RUNNING.PROCESS) (\PROCESSES) (PROCESS.MAXMOUSE 5) ( PROC.FREESPACESIZE 1024) (AUTOPROCESSFLG T) (BACKGROUNDFNS) (\TIMERQHEAD) (\HIGHEST.PRIORITY.QUEUE) ( PROC.DEFAULT.PRIORITY 2) (\DEFAULTLINEBUF) (\DEFAULTTTYDISPLAYSTREAM) (\PROCTIMER.SCRATCH (NCREATE ( QUOTE FIXP))) (TOPW) (\PROC.RUN.NEXT.FLG) (\PROC.READY T)) (ADDVARS (\SYSTEMCACHEVARS \PROC.READY) ( \SYSTEMTIMERVARS (\LASTUSERACTION SECONDS))) (COMS (VARS (\PROC.RESTARTME "{restart flag}") ( \PROC.RESETME "{reset flag}") (\PROC.KILLME "{abort flag}")) (DECLARE%: DONTCOPY (EXPORT (MACROS THIS.PROCESS TTY.PROCESS TTY.PROCESSP) (GLOBALVARS \RUNNING.PROCESS \TTY.PROCESS \PROC.RESTARTME \PROC.RESETME \PROC.ABORTME)) (GLOBALVARS \PROCESSES PROC.FREESPACESIZE %#SCHEDULER# PROCESS.MAXMOUSE AUTOPROCESSFLG BACKGROUNDFNS \TopLevelTtyWindow \PROC.READY) (GLOBALVARS \TIMERQHEAD \PROCTIMER.SCRATCH \HIGHEST.PRIORITY.QUEUE PROC.DEFAULT.PRIORITY \PROC.RUN.NEXT.FLG \SYSTEMTIMERVARS) (MACROS ALIVEPROCP DEADPROCP \COERCE.TO.PROCESS) (LOCALVARS . T))) (COMS (* ; "Debugging") (FNS \CHECK.PQUEUE) (FNS PPROC PPROCWINDOW PPROCREPAINTFN PPROCRESHAPEFN PPROCEXTENT PPROC1 PROCESS.STATUS.WINDOW \PSW.SELECTED \PSWOP.SELECTED PROCESS.BACKTRACE \INVALIDATE.PROCESS.WINDOW \UPDATE.PROCESS.WINDOW) (INITVARS (PROCMENU) (PROCOPMENU) (PROCOP.WAKEMENU) (PROCESS.STATUS.WINDOW) ( SELECTEDPROC) (PROCBACKTRACEHEIGHT 320)) (ADDVARS (BackgroundMenuCommands ("PSW" (QUOTE ( PROCESS.STATUS.WINDOW)) "Puts up a Process Status Window"))) (P (SETQQ BackgroundMenu)) (DECLARE%: EVAL@COMPILE DONTCOPY (GLOBALVARS PROCESS.STATUS.WINDOW PROCMENU PROCOPMENU PROCOP.WAKEMENU PROCBACKTRACEHEIGHT SELECTEDPROC BACKTRACEFONT) (CONSTANTS LIGHTGRAYSHADE SELECTIONSHADE))) (DECLARE%: DONTEVAL@LOAD DOCOPY (ADDVARS (WINDOWUSERFORMS (\PROC.AFTER.WINDOWWORLD))) (P (DEFPRINT (QUOTE PROCESS) (FUNCTION \PROCESS.DEFPRINT)) (DEFPRINT (QUOTE EVENT) (FUNCTION \EVENT.DEFPRINT)) (DEFPRINT ( QUOTE MONITORLOCK) (FUNCTION \MONITORLOCK.DEFPRINT)) (* ; "\process.init must come last, since it does a HARDRESET") (\PROCESS.INIT))) (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML) (LAMA PROCESSPROP ADD.PROCESS))))) (/DECLAREDATATYPE (QUOTE PROCESS) (QUOTE (WORD WORD BYTE POINTER BYTE POINTER BYTE POINTER FLAG FLAG FLAG FLAG FLAG FLAG FLAG FLAG POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER)) (QUOTE ((PROCESS 0 (BITS . 15)) (PROCESS 1 ( BITS . 15)) (PROCESS 2 (BITS . 7)) (PROCESS 4 POINTER) (PROCESS 3 (BITS . 7)) (PROCESS 6 POINTER) ( PROCESS 3 (BITS . 135)) (PROCESS 8 POINTER) (PROCESS 8 (FLAGBITS . 0)) (PROCESS 8 (FLAGBITS . 16)) ( PROCESS 8 (FLAGBITS . 32)) (PROCESS 8 (FLAGBITS . 48)) (PROCESS 6 (FLAGBITS . 0)) (PROCESS 6 (FLAGBITS . 16)) (PROCESS 6 (FLAGBITS . 32)) (PROCESS 6 (FLAGBITS . 48)) (PROCESS 10 POINTER) (PROCESS 12 POINTER) (PROCESS 14 POINTER) (PROCESS 16 POINTER) (PROCESS 18 POINTER) (PROCESS 20 POINTER) (PROCESS 22 POINTER) (PROCESS 24 POINTER) (PROCESS 26 POINTER) (PROCESS 28 POINTER) (PROCESS 30 POINTER) ( PROCESS 32 POINTER) (PROCESS 34 POINTER) (PROCESS 36 POINTER) (PROCESS 38 POINTER) (PROCESS 40 POINTER ) (PROCESS 42 POINTER) (PROCESS 44 POINTER) (PROCESS 46 POINTER) (PROCESS 48 POINTER) (PROCESS 50 POINTER) (PROCESS 52 POINTER) (PROCESS 54 POINTER) (PROCESS 56 POINTER) (PROCESS 58 POINTER) (PROCESS 60 POINTER) (PROCESS 62 POINTER) (PROCESS 64 POINTER))) (QUOTE 66)) (/DECLAREDATATYPE (QUOTE PROCESSQUEUE) (QUOTE (BYTE POINTER POINTER POINTER POINTER)) (QUOTE (( PROCESSQUEUE 0 (BITS . 7)) (PROCESSQUEUE 2 POINTER) (PROCESSQUEUE 4 POINTER) (PROCESSQUEUE 6 POINTER) (PROCESSQUEUE 8 POINTER))) (QUOTE 10)) (ADDTOVAR SYSTEMRECLST (DATATYPE PROCESS ((PROCFX0 WORD) (PROCFX WORD) (PROCSTATUS BYTE) (PROCNAME POINTER) (PROCPRIORITY BYTE) (PROCQUEUE POINTER) (NIL BYTE) (NEXTPROCHANDLE POINTER) (PROCTIMERSET FLAG) (PROCBEINGDELETED FLAG) (PROCDELETED FLAG) (PROCSYSTEMP FLAG) (PROCNEVERSTARTED FLAG) (NIL FLAG) (NIL FLAG) (NIL FLAG) (PROCWAKEUPTIMER POINTER) (PROCTIMERLINK POINTER) (PROCTIMERBOX POINTER) ( WAKEREASON POINTER) (PROCEVENTORLOCK POINTER) (PROCFORM POINTER) (RESTARTABLE POINTER) (PROCWINDOW POINTER) (PROCFINISHED POINTER) (PROCRESULT POINTER) (PROCFINISHEVENT POINTER) (PROCMAILBOX POINTER) ( PROCDRIBBLEOUTPUT POINTER) (PROCINFOHOOK POINTER) (PROCTYPEAHEAD POINTER) (PROCREMOTEINFO POINTER) ( PROCUSERDATA POINTER) (PROCEVENTLINK POINTER) (PROCAFTEREXIT POINTER) (PROCBEFOREEXIT POINTER) ( PROCOWNEDLOCKS POINTER) (PROCEVAPPLYRESULT POINTER) (PROCTTYENTRYFN POINTER) (PROCTTYEXITFN POINTER) ( PROCHARDRESETINFO POINTER) (PROCRESTARTFORM POINTER) (PROCOLDTTYPROC POINTER) (NIL POINTER))) ( DATATYPE PROCESSQUEUE ((PQPRIORITY BYTE) (PQHIGHER POINTER) (PQLOWER POINTER) (PQNEXT POINTER) (PQLAST POINTER)))) (RPAQ? TTY.PROCESS.DEFAULT (QUOTE (EXEC MOUSE))) (RPAQ? \TTY.PROCESS.EVENT) (RPAQ? \TTY.PROCESS) (RPAQ? \PROCESS.NAME.TABLE (HASHARRAY 30 NIL (FUNCTION STRING-EQUAL-HASHBITS) (FUNCTION STRING-EQUAL)) ) (PUTPROPS PROCESSPROP ARGNAMES (PROC PROP NEWVALUE)) (PUTPROPS ADD.PROCESS ARGNAMES (NIL (FORM . PROPS&VALUES) . U)) (MOVD? (QUOTE PROCESS.RETURN) (QUOTE KILL.ME) NIL T) (/SETTOPVAL (QUOTE \\DISMISSTIMER.GLOBALRESOURCE) NIL) (PUTPROPS PROCESS.WAIT MACRO ((WAITCOND TIMEOUT) (bind ($$TIMEOUT _ (AND TIMEOUT (SETUPTIMER TIMEOUT)) ) until (AND $$TIMEOUT (TIMEREXPIRED? $$TIMEOUT)) do (if (SETQ $$VAL WAITCOND) then (RETURN $$VAL) else (BLOCK))))) (RPAQ PSTAT.WAKEUP "default WakeUp") (RPAQ PSTAT.TIMEDOUT "{time interval expired}") (RPAQ PSTAT.QUIT "Quit") (RPAQ \PSTAT.NORESULT "{no result yet}") (/DECLAREDATATYPE (QUOTE EVENT) (QUOTE (FLAG (BITS 3) POINTER POINTER)) (QUOTE ((EVENT 0 (FLAGBITS . 0 )) (EVENT 0 (BITS . 18)) (EVENT 0 POINTER) (EVENT 2 POINTER))) (QUOTE 4)) (ADDTOVAR SYSTEMRECLST (DATATYPE EVENT ((EVENTWAKEUPPENDING FLAG) (NIL BITS 3) (EVENTQUEUETAIL POINTER ) (EVENTNAME POINTER)))) (PUTPROPS AWAIT.CONDITION MACRO ((CONDITION EVNT TIMEOUT TIMERP) (PROG (($$TIMER TIMEOUT) ($$EV ( \DTEST EVNT (QUOTE EVENT)))) (DECLARE (LOCALVARS $$TIMER $$EV)) LP (RETURN (OR CONDITION (COND ((NEQ ( \PROCESS.GO.TO.SLEEP $$EV $$TIMER TIMERP) $$EV) NIL) (T (AND $$TIMER (SETQ $$TIMER T)) (GO LP)))))))) (RPAQ? \PROCESS.AFTEREXIT.EVENT) (/DECLAREDATATYPE (QUOTE MONITORLOCK) (QUOTE (FLAG FLAG (BITS 2) POINTER POINTER POINTER POINTER)) ( QUOTE ((MONITORLOCK 0 (FLAGBITS . 0)) (MONITORLOCK 0 (FLAGBITS . 16)) (MONITORLOCK 0 (BITS . 33)) ( MONITORLOCK 0 POINTER) (MONITORLOCK 2 POINTER) (MONITORLOCK 4 POINTER) (MONITORLOCK 6 POINTER))) ( QUOTE 8)) (ADDTOVAR SYSTEMRECLST (DATATYPE MONITORLOCK ((NIL FLAG) (MLOCKPERPROCESS FLAG) (NIL BITS 2) ( MLOCKQUEUETAIL POINTER) (MLOCKOWNER POINTER) (MLOCKNAME POINTER) (MLOCKLINK POINTER)))) (PUTPROPS WITH.MONITOR MACRO ((LOCK . FORMS) (LET (SI::*LOCKED-MONITOR* SI::*RESETFORMS*) (DECLARE ( CL:SPECIAL SI::*LOCKED-MONITOR* SI::*RESETFORMS*)) (CL:UNWIND-PROTECT (PROGN (OBTAIN.MONITORLOCK LOCK NIL (QUOTE WITH.MONITOR)) . FORMS) (SI::MONITOR-UNWIND))))) (PUTPROPS WITH.FAST.MONITOR MACRO ((LOCK . FORMS) (UNINTERRUPTABLY ((LAMBDA (UNLOCK) (PROG1 (PROGN . FORMS) (AND (NEQ UNLOCK T) (RELEASE.MONITORLOCK UNLOCK)))) (OBTAIN.MONITORLOCK LOCK))))) (RPAQ? \BACKGROUND NIL) (RPAQ? \IGNORE.BACKGROUND T) (RPAQ? %#MYHANDLE#) (RPAQ? %#SCHEDULER#) (RPAQ? \RUNNING.PROCESS) (RPAQ? \PROCESSES) (RPAQ? PROCESS.MAXMOUSE 5) (RPAQ? PROC.FREESPACESIZE 1024) (RPAQ? AUTOPROCESSFLG T) (RPAQ? BACKGROUNDFNS) (RPAQ? \TIMERQHEAD) (RPAQ? \HIGHEST.PRIORITY.QUEUE) (RPAQ? PROC.DEFAULT.PRIORITY 2) (RPAQ? \DEFAULTLINEBUF) (RPAQ? \DEFAULTTTYDISPLAYSTREAM) (RPAQ? \PROCTIMER.SCRATCH (NCREATE (QUOTE FIXP))) (RPAQ? TOPW) (RPAQ? \PROC.RUN.NEXT.FLG) (RPAQ? \PROC.READY T) (ADDTOVAR \SYSTEMCACHEVARS \PROC.READY) (ADDTOVAR \SYSTEMTIMERVARS (\LASTUSERACTION SECONDS)) (RPAQ \PROC.RESTARTME "{restart flag}") (RPAQ \PROC.RESETME "{reset flag}") (RPAQ \PROC.KILLME "{abort flag}") (RPAQ? PROCMENU) (RPAQ? PROCOPMENU) (RPAQ? PROCOP.WAKEMENU) (RPAQ? PROCESS.STATUS.WINDOW) (RPAQ? SELECTEDPROC) (RPAQ? PROCBACKTRACEHEIGHT 320) (ADDTOVAR BackgroundMenuCommands ("PSW" (QUOTE (PROCESS.STATUS.WINDOW)) "Puts up a Process Status Window")) (SETQQ BackgroundMenu) (ADDTOVAR WINDOWUSERFORMS (\PROC.AFTER.WINDOWWORLD)) (DEFPRINT (QUOTE PROCESS) (FUNCTION \PROCESS.DEFPRINT)) (DEFPRINT (QUOTE EVENT) (FUNCTION \EVENT.DEFPRINT)) (DEFPRINT (QUOTE MONITORLOCK) (FUNCTION \MONITORLOCK.DEFPRINT)) (\PROCESS.INIT) NIL