Never mind, this path isn't going to work either. So let me ask a different
question, which addresses my *actual* problem.

I have a module running XMS (in a secondary address space.) Sometimes it
needs to issue a request to a TCB running in the secondary address space.
Following that, my (primary address space TCB) needs to wait on an ECB that
secondary task will eventually post (XMS post with ASCB).

OK, with all of that, it's possible that the secondary address space will
crash while the primary address space is waiting for the ECB to be posted,
and if the secondary address space crashes, the ECB will never be posted,
causing the primary address space to be in an endless wait for an ECB that
will never be posted.

*whew* ok, that was long. I need the wait to time out, so that if the
secondary address space crashes, the primary address space would notice
after some amount of time.

Because it's all in cross memory mode, neither STIMER nor STIMERM work very
well at all, leaving me without any good options. I'm having a hell of a
time figuring out how to get a timeout.

It seems I am going to have to ATTACH a task, and use yet another queue
passing things into the attached task so that the attached task can do a
post to a passed-in ecb if the "queue entry time" expires. Then my cross
memory program can put its "request" on this queue, issue a multiple wait,
and I guess take itself off this "timer task queue" when the original ECB
gets posted correctly.

This is a damn lot of work to ensure we don't endless wait if an address
space crashes. It sure would be nice to have a much more efficient way to
determine if the secondary address crashed, or have an efficient way to come
out of a WAIT after a certain amount of time (in AR mode.)

!sigh! :)

David Logan

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On Behalf
Of David Logan
Sent: Thursday, February 14, 2008 10:48 AM
To: [email protected]
Subject: Hopefully quick XMS question

I have a quick question about how to switch PASN and SASN in XMS mode. I
have some assembly code where I want to "BAS 14,SUBFUNC"

 

At the time of the BAS, I am in AR mode, with SASN=HASN, and PASN=other.

 

After I enter the call, I need to switch this around, so that PASN=HASN and
SASN=immaterial

 

Then I can SAC 0 and put myself into primary mode.

 

Obviously just before the BR 14, I need to undo all of this to get back to
AR mode, SASN=HASN, etc.

 

Is there an easy way to do this that I haven't found yet, or do I have to
hunt down the ASN "get" and "set" instructions (such as SSAR) and issue the
various switcharound instructions.

 

Thanks!

 

David Logan

 

. <snip> . HASN = SASN, PASN=other

BAS 14,SUBFUNC

. <snip> .

 

SUBFUNC DS 0H

;

; Here, I want to SAC 0 to put myself into PRIMARY mode, but I also need to
set PASN=HASN

; Before I return, I want to set SAC 512 and restore SASN=HASN and
PASN=other

.

 

 

Is there an easy way to do this that I haven't found yet?

 

Thanks!

 

David Logan


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to