A system for transparent local and distributed memory management overcomes
the requirement of keeping track of whether a memory space allocated to a
new object or a new program or data structure can be reclaimed. An
autorelease pool is created at the beginning of a new duty cycle. The
autorelease pool retains the newly allocated memory space during the duty
cycle. The autorelease pool is automatically disposed of at the end of
the duty cycle. As a result of disposing the autorelease pool, the newly
allocated memory space is reclaimed (i.e., deallocated). This is useful
in distributed networks where different programming conventions on remote
and local machines made the memory management task particularly
difficult. This is also useful in an object-oriented programming
environment.