>
> And - to follow-up one more time, the SIR documentation from the MVSSIGSETUP
> service has this to say:
>
>
> If the interrupt cannot be processed at this time, possibly due to general
> register 13 not currently containing the address of a program stack, or
> the last
> service called on the current thread was cond_setup, then the
> queue_interrupt
> service request is issued
>
> So - my question really is "how can the SIR determine that the last service
> called on the current thread was cond_setup?"
>
> - Thanks -
> - Dave R. -
>
So - to follow-up some more, I did find this field in the BPXZOTCB (OMVS TCB
extension):
OTCBCTWACTIVE EQU X'02' cond_timed_wait (BPX1CTW) is active
(it seems to go all the way back to OS/390 2.10.)
If that flag is also set whe just cond_wait is active (which would make
sense), then
perhaps a possible mechanism is:
1) Set a flag somewhere indicating cond_setup is about to be called
a) If a signal arrives at the SIR, check that flag and return any
signals to the kernal via queue_interrupt, unless the
OTCBCTWACTIVE flag
in the OTCB is set, in which case you clear the flag and let
the signal proceed.
2) Invoke cond_setup
3) Do housekeeping
4) Invoke cond_wait/cond_timed_wait (which presumably turns on OTCBCTWACTIVE
in the OTCB).
That is assuming that the OTCBCTWACTIVE flag is set for both cond_wait and
cond_timed_wait.
I did find APAR PK80435 that references OTCBCTWACTIVE but couldn't find any
documentation
on the bit itself, and I don't know if it's a programmable interface????
IBM very carefully claims:
Only the following fields are externally documented. All other fields are
reserved for IBM use only.
OtcbThli
OtcbWLMEToken
OtcbSigPending
OtcbOapb
Any thoughts?
- Thanks -
- Dave Rivers -
--
[email protected] Work: (919) 676-0847
Get your mainframe programming tools at http://www.dignus.com
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN