Re: Zero IOSB status

From: Roy Omond (Roy.Omond_at_BlueBubble.UK.Com)
Date: 03/31/05


Date: Thu, 31 Mar 2005 12:47:03 +0100

Ron Atkinson wrote:

> When performing a QIO READVBLK + IO$M_LOCKBUF on an IP listening
> socket, the QIO status is OK but the read IOSB status is returning the
> value 0 instead of 1.
>
> When I step through this bit of code using the pascal debugger it
> returns 1 as expected.
>
> In both cases the function works OK. What am I doing wrong ?

Probably nothing!

I came across what appeared to be a similar race condition a few
months back, where the QIO EFN was being set *before* the IOSB
had been filled in. I haven't had time to analyse properly,
but I /think/ there's one of the common IO completion routines
whose name escapes me at the moment, where a MB (Memory Barrier)
instruction should have been in there to avoid exactly this sort
of thing happening (at least, that's what I tentatively deduced).

The condition would only ever manifest itself on *fast* multi-processor
machines, like ES45 etc. (does this fit your scenario ?)

I'll dig through my notes when I can find some time.

P.s. the common IO completion routines (from the VMS Source listings)
have plenty of comments from names that most here will instantly
recognise.

Roy Omond
Blue Bubble Ltd.



Relevant Pages

  • Re: Zero IOSB status
    ... > The QIO status OK shows that the QIO has succesfully started and that you ... > can expect an AST and a valid IOSB when the operation ... Hoi Hein, ... before the event flag is posted. ...
    (comp.os.vms)
  • Re: Zero IOSB status
    ... > socket, the QIO status is OK but the read IOSB status is returning the ... The QIO status OK shows that the QIO has succesfully started and that you ... can expect an AST and a valid IOSB when the operation ... Did yo mean to issue QIO or did you perhaps need QIOW? ...
    (comp.os.vms)
  • Re: Zero IOSB status
    ... > Ron Atkinson wrote: ... >> socket, the QIO status is OK but the read IOSB status is returning the ...
    (comp.os.vms)
  • Re: Zero IOSB status
    ... > socket, the QIO status is OK but the read IOSB status is returning the ... > When I step through this bit of code using the pascal debugger it ...
    (comp.os.vms)