Macaulay2 » Documentation
Packages » Macaulay2Doc > The Macaulay2 language > system facilities > registerFinalizer
next | previous | forward | backward | up | index | toc

registerFinalizer -- register a string that will be displayed when an object is garbage collected

Synopsis

Description

i1 : for i from 1 to 9 do (x := 0 .. 10000 ; registerFinalizer(x, "-- finalizing sequence #"|i|" --"))
i2 : collectGarbage() 
--finalization: (1)[8]: -- finalizing sequence #9 --
--finalization: (2)[3]: -- finalizing sequence #4 --
--finalization: (3)[2]: -- finalizing sequence #3 --
--finalization: (4)[1]: -- finalizing sequence #2 --
--finalization: (5)[0]: -- finalizing sequence #1 --
--finalization: (6)[4]: -- finalizing sequence #5 --
--finalization: (7)[5]: -- finalizing sequence #6 --
--finalization: (8)[6]: -- finalizing sequence #7 --
--finalization: (9)[7]: -- finalizing sequence #8 --

Caveat

This function should mainly be used for debugging. Having a large number of finalizers might degrade the performance of the program. Moreover, registering two or more objects that are members of a circular chain of pointers for finalization will result in a memory leak, with none of the objects in the chain being freed, even if nothing else points to any of them.

See also

Ways to use registerFinalizer :

For the programmer

The object registerFinalizer is a method function.