The use of reenterable load modules does not automatically conserve
virtual storage; in many applications it will actually prove wasteful.
If a load module is not used in many jobs and if it is not employed
by more than one task in a job step, there is no reason to make the
load module reenterable. The allocation of virtual storage for the
purpose of moving coding from the load module to the allocated area
is a waste of both time and virtual storage when only one task requires
the use of the load module.
You do not need to make a load module reenterable or serially reusable
if reusability is not really important to the logic of your program.
Of course, if reusability is important, you can issue a LOAD macro
to load a reusable module, and later issue a DELETE macro to release
its area.
Note: - If your module is reenterable or serially reusable, the load module
must be link edited, with the desired attribute, into a library. The
default linkage editor attributes are non-reenterable and non-reusable.
- A module that does not modify itself (a refreshable module) reduces paging activity because it does
not need to be paged out.