README.md
One problem with transient libraries is that if memory is tight
the region required for the library sometimes can not get created and
LDLIB produces an annoying message that the task can't run because
the region could not be created. Several steps are taken to solve this
problem (at least partially)
1. The SUSPEND/RESUME logic/handshaking between LDLIB.TSK and LDLIBS
is replaced with STOP/UNSTOP for systems having parent/offspring
tasking GENed into their system. A STOPed task has 0 effective priority
and is immediately elegible for checkpointing. A suspended task only
can get checkpointed by a higher priority task. This makes it easier
to checkpoint the initiating task while LDLIB is doing its thing.
2. CKP... has been modified to accept requests from LDLIB to clear
out core. LDLIB now sends off requests to CKP... to checkpoint
everything (!!!) it can when LDLIB needs to load a loadable library.
Clearly this would cause a lot of thrashing on a system in which
tasks with loadable libraries were bouncing in and out of core constantly.
However, in many systems, the tasks built with loadable libraries are
infrequently used.
3. CKP... has been modified so a privileged user can RUN CKP... and
checkpoint everything out of core.