changeset 2702:2bd966ffd6d5 lwtools-port

Fixed longstanding issue with processes not going away when a network path closed. Also inetd now turns of pause
author Boisy Pitre <boisy.pitre@nuance.com>
date Fri, 20 Jul 2012 15:02:12 -0500
parents 772a16760499
children aa91dd03121d
files level1/cmds/inetd.a level1/modules/dw3.asm
diffstat 2 files changed, 18 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/level1/cmds/inetd.a	Fri Jul 20 13:36:02 2012 -0500
+++ b/level1/cmds/inetd.a	Fri Jul 20 15:02:12 2012 -0500
@@ -68,6 +68,17 @@
                leax      nbuffer,u
                stx       nnext,u
 
+* Turn off pause in standard out
+               ldd		#$01*256+SS.Opt
+               leas      -32,s
+               tfr       s,x
+               os9       I$GetStt
+               bcs       opterr
+               clr       PD.PAU-PD.OPT,x
+               os9       I$SetStt
+opterr
+               leas      32,s
+
 * open the path to the control channel
                lbsr      TCPOpen
                lbcs      errex
--- a/level1/modules/dw3.asm	Fri Jul 20 13:36:02 2012 -0500
+++ b/level1/modules/dw3.asm	Fri Jul 20 15:02:12 2012 -0500
@@ -410,7 +410,7 @@
 
           * multiread/status flag is in bit 4 of A
                bita      #$10
-               beq       IRQPutch            ; branch for read1 if multiread not set
+               lbeq       IRQPutch            ; branch for read1 if multiread not set
 
           * all 0s in port means status, anything else is multiread
 
@@ -453,8 +453,8 @@
 
 * This routine roots through process descriptors in a queue and
 * checks to see if the process has a path that is open to the device
-* represented by the static storage pointer in U. If so, the S$HUP
-* signal is sent to that process
+* represented by the static storage pointer in U. If so, set the Condem
+* bit of the P$State of that process.
 *
 * Note: we start with path 0 and continue until we get to either (a) the
 * last path for that process or (b) a hit on the static storage that we
@@ -487,9 +487,9 @@
                bne       loop
 
                ldx       ,s
-               lda       P$ID,x
-               ldb       #S$HUP
-               os9       F$Send
+			lda   	P$State,x		get state of recipient
+			ora   	#Condem			set condemn bit
+			sta   	P$State,x		and set it back
 
 out            puls      x
                ldx       P$Queue,x
@@ -499,7 +499,7 @@
 statcont       clrb      
                tfr       d,u
 * NEW: root through all process descriptors. if any has a path open to this
-* device, send then S$HUP
+* device, set the Condem bit of the P$State
                ldx       <D.AProcQ
                beq       dowaitq
                bsr       RootThrough