They are not technically the same. A REFR program can be reloaded at any time. Therefore it cannot self modify as it cannot know if it has been reloaded. But if it uses common/global areas without serialization it is not reentrant.
A RENT program is one that can be executed concurrently by multiple thread. It can self modify as long as a semaphore is used to block the critical section that self modifies. REFR+RENT is the commonly understood MVS instantiation of reentrant. On Sun, 11 Jun 2017 16:59:23 +0000 Jesse 1 Robinson <[email protected]> wrote: :>I was very surprised by Chris Poncelet's post, so I used Goggle to find this doc: :>https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.ieab100/iea3b1_Module_reusability.htm :>Blew me away. I knew the definition of RENT and REFR, but I believed that both attributes were set in combination if either one was specified. So what is the difference *in practice* between RENT and REUS? Both seem to imply that a module can be executed successively by multiple callers. Furthermore, in practice, who in the world would bother with ENQ/DEQ rigmarole to serialize execution of a RENT module instead of just coding it REFR in the first place? REFR is not that difficult if you set out to do it from the get-go. :>And last, what would happen if a self-modifying RENT module were in fact executed concurrently by multiple callers without ENQ/DEQ? Incorrect result? Abend? I'm verklempt. -- Binyamin Dissen <[email protected]> http://www.dissensoftware.com Director, Dissen Software, Bar & Grill - Israel Should you use the mailblocks package and expect a response from me, you should preauthorize the dissensoftware.com domain. I very rarely bother responding to challenge/response systems, especially those from irresponsible companies. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
