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

## Synopsis

• Usage:
registerFinalizer(x,str)
• Inputs:
• x,
• str,
• 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|" --")) --finalization: (1)[0]: -- finalizing sequence #1 -- --finalization: (2)[1]: -- finalizing sequence #2 -- i2 : collectGarbage() --finalization: (3)[4]: -- finalizing sequence #5 -- --finalization: (4)[3]: -- finalizing sequence #4 -- --finalization: (5)[5]: -- finalizing sequence #6 -- --finalization: (6)[2]: -- finalizing sequence #3 -- --finalization: (7)[6]: -- finalizing sequence #7 -- --finalization: (8)[7]: -- finalizing sequence #8 -- --finalization: (9)[8]: -- finalizing sequence #9 --

## 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.

## For the programmer

The object registerFinalizer is .