Operating System - OpenVMS
1753727 Members
4493 Online
108799 Solutions
New Discussion юеВ

Form level functions blocking kernel signals?

 
Michael Meinhardt
New Member

Form level functions blocking kernel signals?

Hi,
I'm having a little trouble with FMS. In one application, the SIGALRM signal can be set, and then caught when the process is in the FDV_GETAL call.

However, in another application, it seems as if the signal isn't even being generated.

Eventually I used the FDV_STIME function, which pretty much does what I need it to do, but it won't break out of the FDV_GET if the field attribute RESPONSE_REQUIRED is set.

Can anyone offer advice or direction on the subject of signals and FMS? (I did do a search of the message board, but I didn't find any in depth info)

Thanks in advance,
Michael
3 REPLIES 3
John Gillings
Honored Contributor

Re: Form level functions blocking kernel signals?

Unix type signalling doesn't always play well with OpenVMS software that uses ASTs.

If there's a more VMSish mechanism that achieves the same goal, you'd be better off using it. If you're trying to achieve a timeout, maybe an AST routine which calls FDV$CANCEL?

Can you write a small program that demonstrates the symptom?
A crucible of informative mistakes
Michael Meinhardt
New Member

Re: Form level functions blocking kernel signals?

Would it help if I posted the FMS functions in the order that they are called, up to the point of the FDV_GET? (I can't post the source since it is too big - about 310 different files, and copyrighted)

I remeber reading something about ASTs in the DEC FMS manuals, but the index isn't very complete - Is there a way to disable the ASTs, or is there a particular function that initializes them?

The other major difference in the applications is that the app that I can use signals in has no scroll areas, rolodex boxes, different size fonts, etc - it is just plain text. The other app where the signals are working looks like a typical green screen app (scroll areas, forms with multiple font sizes on the same page, rolodex fields, etc )

Thanks,
Michael
John Gillings
Honored Contributor

Re: Form level functions blocking kernel signals?

Michael,

> Would it help if I posted the FMS
>functions in the order that they are
>called, up to the point of the FDV_GET?

Best bet would be to try and create a small reproducer based on the sequence of FMS calls.

>Is there a way to disable the ASTs,

Sure, SYS$SETAST 0 for OFF 1 for ON, BUT you really don't want to do that! ASTs are what make FMS (and, indeeed, OpenVMS) work! I guess that SYS$SETAST(0) almost anywhere in your program would guarantee that it didn't work at all.

The issue is that if you're going to use software layers that depend on ASTs, (like FMS) it's sometimes better to avoid Unixisms like SIGALRM. In a sense, ASTs and signals are trying to do similar types of things but may conflict with each other. Look at what you're attempting to use the SIGALRM for, and see if there's a native OpenVMS mechanism for doing the same thing.
A crucible of informative mistakes