Annotation of researchv10dc/man/adm/man3/galloc.3, revision 1.1.1.1

1.1       root        1: .TH GALLOC 3
                      2: .CT 2 mem_man
                      3: .SH NAME
                      4: galloc, gfree, garbage \(mi storage allocation with garbage collection
                      5: .SH SYNOPSIS
                      6: .nf
                      7: .B char *galloc(n)
                      8: .B unsigned n;
                      9: .PP
                     10: .B void gfree(p)
                     11: .B char *p;
                     12: .PP
                     13: .B void garbage()
                     14: .fi
                     15: .SH DESCRIPTION
                     16: These functions perform heap storage allocation with
                     17: garbage collection.
                     18: .PP
                     19: .I Galloc
                     20: allocates a block of at least
                     21: .I n
                     22: bytes and returns a pointer to it.
                     23: .I Gfree
                     24: frees a block previously allocated by
                     25: .I galloc.
                     26: .PP
                     27: When space gets tight, garbage blocks
                     28: are freed automatically.
                     29: A block allocated by
                     30: .I galloc
                     31: is deemed to be garbage unless it is reachable.
                     32: A reachable block is one whose first byte is
                     33: pointed to by a declared C variable
                     34: or by a pointer in a reachable block.
                     35: .PP
                     36: The frequency of garbage collection is controlled by external
                     37: variables declared
                     38: .IP
                     39: .B "long gcmax = 5000, gcmin = 50;"
                     40: .LP
                     41: No more than
                     42: .I gcmax
                     43: allocations may intervene between automatic collections; this feature
                     44: will help contain the growth of virtual address space.
                     45: At least
                     46: .I gcmin
                     47: allocations must intervene, otherwise
                     48: garbage collection will be abandoned as fruitless.
                     49: .I Garbage
                     50: may be called to do garbage collection at an arbitrary time.
                     51: .PP
                     52: .IR Malloc (3)
                     53: and
                     54: .I galloc
                     55: allocate from the same arena, but garbage collection
                     56: affects only
                     57: .I galloc
                     58: blocks.
                     59: .I Free
                     60: (see
                     61: .IR malloc (3))
                     62: must not be used on blocks allocated with
                     63: .IR galloc .
                     64: .SH SEE ALSO
                     65: .IR malloc (3)
                     66: .SH DIAGNOSTICS
                     67: .I Galloc
                     68: returns 0
                     69: when space cannot be found.
                     70: .SH BUGS
                     71: Garbage collection is conservative;
                     72: blocks that appear to be pointed to from
                     73: within declared storage will not be freed,
                     74: regardless of whether the apparent `pointers'
                     75: were declared as such.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.