Doesn't the ComeFrom instruction fix that? /s

I guess the smart thing would be for that preallocated workarea to include a 
size value, so the caller could test it and say "Yep, big enough" (or not).
 
-----Original Message-----
From: IBM Mainframe Discussion List <[email protected]> On Behalf Of 
Schmitt, Michael
Sent: Friday, March 28, 2025 1:18 PM
To: [email protected]
Subject: Re: Reentrant Lite ?

It is a valid technique but the disadvantage is now the caller is determining 
the size of the area. If you're not in control of both the calling program and 
the subprogram, you have problems when the subprogram has changes that need 
more memory.

-----Original Message-----
From: IBM Mainframe Discussion List <[email protected]> On Behalf Of 
Richard Zierdt
Sent: Friday, March 28, 2025 10:49 AM
To: [email protected]
Subject: Reentrant Lite ?

When coding reentrant modules, one practice is to Obtain Storage (Getmain, etc) 
and setup shop.  This is well and good.

But another technique would have the *caller*, who may be reentrant or not, 
*provide* the savearea / workarea and pass the address of that area through 
typical R1 / address list linkage stuff.

This would save Obtain / Getmain / Freemain calls.   For a program that gets 
called thousands of times, the overhead would add up.   Yes, the caller has to 
provide a workarea, and that may cost one Getmain, but it's only once.

Say Program A calls reentrant Program B 10,000 times.  If A provides the 
workarea, that saves 10,000  Getmain/Freemains in B.

The concept seems to be used by the IEAMSXMP  "POST" macro, which wants a 
512-byte WORKAREA=.  Well, why not get it yourself, IBM?   Answer might be to 
save overhead.  (Yes, there may be other reasons).

Any program could be reentrant without Getmains if callers provided save/work 
areas (and the programs were written accordingly).

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to