HP OpenVMS Systemsask the wizard |
The Question is: Hi, I'm having problems with event flags. I'm using the X Intrinsics XtAppAddInput to call a callback routine when a read to a mailbox completes. However, when I try to clear the event flag in the callback, I get an access violation. I've tried with other event flag numbers other than the one which I use on the mailbox and the clear works fine. It's just when I try to clear the event flag that I've used on the mailbox that it fails. I need to come up with a method which avoids the use of ASTs since all of our utility routines do not allow the specification of an AST address). Is there any way that this can be done? Dave The Answer is : The event flag for XtAppAddInput must be in event flag cluster zero. (That is, the event flag must be in the range of EFs 0 through 31.) If you are getting access violations (ACCVIO), then start by examining the exact code that is generating the ACCVIO, and by examining the ACCVIO stack frame for the PC, VA, and reason mask associated with the failure. Without a short source code example of the failure, the wizard cannot guess the particular cause of the problem. If your utility routines do not allow the specification of an AST address as an argument or via some other means, you will want to seriously consider extending them to allow for the specification of completion ASTS -- via variable-length argument lists or via variant routines or via addresses in shared storage -- as you will find yourself encountering application limits due to event flag longwords. (This assumes you have a larger and more complex application.)
|