[Info-vax] QIO Writes to a mailbox
VAXman- at SendSpamHere.ORG
VAXman- at SendSpamHere.ORG
Tue Nov 8 13:24:55 EST 2011
In article <d0c8a111-6a84-47ba-b816-80123a60f5f6 at 8g2000vbw.googlegroups.com>, Bob Gezelter <gezelter at rlgsc.com> writes:
>On Nov 4, 5:04=A0am, Steve Bainbridge <stephen_bainbri... at yahoo.co.uk>
>wrote:
>> Hi,
>>
>> I have a very simple question, but when looking at the Alpha internals
>> manual and talking to colleagues the answer does not seem so obvious.
>>
>> We have some old code that issues a QIO WRITEVBLK to a mailbox - the
>> return code from the QIO is normal. Another process reads the mailbox
>> and never gets the message - this only happens very rarely.
>> Unfortunately the writer does not check or report what value the IOSB
>> returns and I need to try and understand why these messages are
>> getting lost. I can't reproduce this on our test systems and I can't
>> easily install updated diagnostic code onto these production systems.
>>
>> The question I have is when is the data pointed to by P1 (in the QIO
>> call) actually copied ? It is always done within the QIO routine or is
>> it just scheduled to be done in the QIO call ? Can I re-use the buffer
>> pointed to by P1 immediately after the call to the QIO ?
>>
>> Regards,
>> Steve
>
>Steve,
>
>As has been said several times: QIO (or QIOW) without checking the
>IOSB status at completion is simply incorrect. The return from the
>system service merely indicates that the operation was queued, not its
>final disposition.
I believe I said before that the $QIOW is just $QIO followed by $SYNCH.
In the latter, the caller will wait until the I/O completes. $QIO is
ASYNCHRONOUS. It's the $SYNCH which makes it a SYNCHRONOUS call. But,
not specifying the EFN or, more importantly, the IOSB will render the
$SYNCH rather useless.
Specify the IOSB, check it and assume nothing! Then, the code should
work.
--
VAXman- A Bored Certified VMS Kernel Mode Hacker VAXman(at)TMESIS(dot)ORG
All your spirit rack abuses, come to haunt you back by day.
All your Byzantine excuses, given time, given you away.
More information about the Info-vax
mailing list