Starting with PL/I "Optimizing Compiler" IBM has had an architecture where the 
main program allocated a Dynamic Storage Area (DSA) for allocating stack frames 
without GETMAIN, with provision for chaining additional segment when the 
initial allocation is exhausted. Didn't LE inherit that mechanism?

-- 
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
עַם יִשְׂרָאֵל חַי
נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר



________________________________________
From: IBM Mainframe Discussion List on behalf of Richard Zierdt
Sent: Friday, March 28, 2025 11:48 AM
To: [email protected]
Subject: Reentrant Lite ?


External Message: Use Caution


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).

Just a thought

Richard Zierdt

Confidentiality Warning/Avertissement de confidentialité:

This message is intended only for the named recipients. This message may 
contain information that is privileged or confidential. If you are not the 
named recipient, its employee or its agent, please notify us immediately and 
permanently destroy this message and any copies you may have. Ce message est 
destiné uniquement aux destinataires dûment nommés. Il peut contenir de 
l'information privilégiée ou confidentielle. Si vous n'êtes pas le destinataire 
dûment nommé, son employé ou son mandataire, veuillez nous aviser sans tarder 
et supprimer ce message ainsi que toute copie qui peut en avoir été faite.

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




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

Reply via email to