HP3000-L Archives

February 1996, Week 1

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Tom Emerson <[log in to unmask]>
Reply To:
Tom Emerson <[log in to unmask]>
Date:
Fri, 2 Feb 1996 16:44:00 +0000
Content-Type:
text/plain
Parts/Attachments:
text/plain (51 lines)
Dan Hollis wrote:
Subject: Bizarre IOWAIT behavior
Date: Friday, February 02, 1996 11:26AM
 
Howdy all,
 
I'm experiencing some bizarre IOWAIT problems.
 
[examples snipped]
 
Problem : If there are outstanding message file reads, it appears to prevent
socket I/O errors from ever being returned to IOWAIT. The socket I/O never
completes until the message file I/O completes.
 
Anyone else see this? Solutions? (And *please* don't tell me to use socket
and/or message file read timeouts... I do *NOT* want this thing to poll. =P)
=============================================================
 
Strangely enough, I've just spent the day looking at the intrinsics
regarding message files and nowait I/O.  One thing I noticed from scenario 1
is that you did not post a second read to the message file (or if so, you
didn't indicate such).  This would imply that the remote host disconnected
at or around the time the message file read completed, essentially making it
the same as scenario 2 except the "minutes pass" can be condensed down to
"milliseconds pass".
 
I'm looking at doing something similar to what you describe in your
examples, except instead of referring to sockets and message files, I'm
using terminals and message files.  I want to be able to post a read on the
terminal file "indefinately", but respond to messages from the message file
whenever they occur.  The only two solutions are polling and interrupts,
however there doesn't seem to be a way to make the message file generate a
control-Y on the terminal to tell the program "service the message file!"
 
THEN I started looking through the intrinsics, interprocess communications,
etc. handbooks on the latest CD rom and found EXACTLY what I was looking for
 -- an "interrupt" service routine!  You can use FCONTROL(message-file, 48,
interrupt-handler-address) to specify a routine that handles incoming
messages when the processor is "busy" with another part of the program (such
as waiting for a terminal or socket read to complete)  The code given in the
handbook can be cut/pasted from the cdrom reader and compiled relatively
easily (note: the first sample program you come aross is for PASCAL, not
PASCAL/XL!)  Also, if you do a straight cut-and-paste from windows, one line
of the sample code is "too long" and wraps around to two lines.  Usualy this
isn't a problem, but in this particular case it is a quoted string literal,
so the compiler coughs all over the place...
 
Tom Emerson
Modular Data, Inc.
[log in to unmask]

ATOM RSS1 RSS2