[Info-vax] yet another sys$qiow question
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Fri Aug 21 19:01:03 EDT 2015
On 2015-08-21 22:41:19 +0000, Craig A. Berry said:
> Yes, of course the IOSB will change after the return from the SYS$QIO,
> but it won't change after you take appropriate steps to make sure the
> I/O is complete...
In short...
Two of the four officially-suggested mechanisms are exposed to this, AFAICT.
sys$synch is likely not, and the AST-based routine are likely also not
— though any mainline checks involving the status block outside of the
AST routine might still be a problem, as the mainline doesn't "know"
that the AST fired.
Waiting on the event flag with the subsequent IOSB, LKSB, EVSB, etc,
status block check likely is exposed — that one might well have a null
status block (if the compiler is smart enough to cache over the call,
as there's no reference to the status block), which means "properly
written" code falls back into the event flag wait — and the brute-force
status block polling is also likely exposed.
What exposures might exist in other programming languages is also an
open topic, as marking variables as being volatile is not a ubiquitous
construct across all programming languages.
It'll be interesting to see what HP and VSI might deign to document and
to recommend here, assuming this potentially-undefined behavior is
determined to be real.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list