registerFinalizer -- register a string that will be displayed when an object is garbage collected
Synopsis
-
- Usage:
registerFinalizer(x,str)
-
Inputs:
-
Consequences:
-
A finalizer is registered with the garbage collector to print a string when that object is collected as garbage
Description
i1 : for i from 1 to 9 do (x := 0 .. 10000 ; registerFinalizer(x, "-- finalizing sequence #"|i|" --"))
|
i2 : collectGarbage()
--finalization: (1)[4]: -- finalizing sequence #5 --
--finalization: (2)[3]: -- finalizing sequence #4 --
--finalization: (3)[8]: -- finalizing sequence #9 --
--finalization: (4)[7]: -- finalizing sequence #8 --
--finalization: (5)[0]: -- finalizing sequence #1 --
--finalization: (6)[6]: -- finalizing sequence #7 --
--finalization: (7)[2]: -- finalizing sequence #3 --
--finalization: (8)[1]: -- finalizing sequence #2 --
--finalization: (9)[5]: -- finalizing sequence #6 --
|
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.
Ways to use registerFinalizer :
-
registerFinalizer(Thing,String) (missing documentation)