ocker@lan.informatik.tu-muenchen.dbp.de (Wolfgang Ocker) (11/14/88)
[I know only OS-9/68000, but I don't think that OS-9 and OSK are different in this point] Condemned processes which don't want to die often loop in the TermNat routine of a SCF device driver. OS9, as you know, tries do de-initialize a device, after closing all pathes on it (assumed no previous "iniz" has been done.) The reason of that (necessary) behaviour of a driver is, that it must flush the output buffer before it can terminate the device (i.e. uninstall the IRQ, free the buffers etc.) Flushing of the output is not possible when a XOff is pending. The TermNat routine often looks like this: TermNat00: <sleep> TermNat: tst.w OutBufferCount(a2) bne.s TermNat00 ; still characters in output buffer! <go on terminating device> To avoid this problem, you can "iniz" the device before using it. If the driver hangs already because of a XOff (typically on modem lines :-() you can try to connect another terminal to that line and give the driver what he wants (a XOn). I have no idea how to work around this problem. An additional SetStat function, which should clear the XOff condition, isn't useful, because SCF blocks all calls to a driver when it's in use. Perhaps a timeout would help ... /// Wolfgang Ocker -- | Wolfgang Ocker | ocker@lan.informatik.tu-muenchen.dbp.de | | Lochhauserstr. 35a | pyramid!tmpmbx!recco!weo (home) | | D-8039 Puchheim | Technische Universitaet Muenchen | | Voice: +49 89 80 77 02 | Huh, What? Where am I? |