Managing Reentrant Structures Using Reference Counts
- 1 July 1980
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 2 (3), 269-273
- https://doi.org/10.1145/357103.357104
Abstract
Automatic storage management requires that one identify storage unreachable by a user's program and return it to free status. One technique maintains a count of the references from user's programs to each cell, since a count of zero implies the storage is unreachable. Reentrant structures are self-referencing; hence no cell in them will have a count of zero, even though the entire structure is unreachable. A modification of standard reference counting can be used to manaage the deallocation of a large class of frequently used reentrant structures, including two-way and circularly linked lists. All the cells of a potentially reentrant structure are considered as part of a single group for deallocation purposes. Information associated with each cell specifies its group membership. Internal references (pointers from one cell of the group to another) are not reference counted. External references to any cell of this group are counted as references to the group as a whole. When the external reference count goes to zero, all the cells of the group can be deallocated. This paper describes several ways of specifying group membership, properties of each implementation, and properties of mutable and immutable group membership.Keywords
This publication has 4 references indexed in Scilit:
- Efficient search for rationalsInformation Processing Letters, 1979
- Efficiency of a Good But Not Linear Set Union AlgorithmJournal of the ACM, 1975
- List tracing in systems allowing multiple cell-typesCommunications of the ACM, 1971
- Symmetric list processorCommunications of the ACM, 1963