Dictionary Definition
ephemeron n : an insect that lives only for a day
in its winged form [syn: ephemera] [also: ephemera (pl)]
User Contributed Dictionary
Noun
- something short lived or transitory
Extensive Definition
In computer
science, Finalization
occurs when a
garbage collector (GC) informs an application that an object is
"almost collectable." It is used to help an application maintain
its invariants. To make finalization more useful, "almost
collectable" is defined in terms of a new class of objects, called
ephemerons. Ephemerons are similar to weak pairs, but an object in
an ephemeron's key field may be classed as "almost collectable"
even if it is reachable from the epehemeron's value fields.
Description
An Ephemeron is an object which refers strongly
to its contents as long as the Ephemeron's key is not garbage
collected, and weakly from then on. Ephemerons solve a problem
which is commonly found when trying to "attach" properties to
objects by using a registry. When some property should be attached
to an object, the property should (in terms of GC behavior)
typically have the life-time that an instance variable of this
object would have. However, this is complicated by having an
external association between the object and its property such
as:
property --------- registry --------- association
--------- object
Here, the registry (a third party) will hold onto
the association itself which would require manual removal from the
registry (instead of automated garbage collection). While this
problem can be always be solved in any given concrete situation by
using one of the various weak association types, choosing the
'right' kind of association depends on a variety of factors some of
which can change dynamically.
Ephemerons solve this problem by defining that
the 'contents' (value) of an Ephemeron will be held strongly until
the key is known to be garbage collected. From then on, the
contents of the ephemeron will be held weakly. Therefore, the
contents of an ephemeron can only become eligible for garbage
collection if and only if the key is garbage collectable which is
the exact behavior which we would observe for an instance variable
of the object.
History
Ephemerons were first invented by Geroge
Bosworth while he worked at Digitalk. They were used as the
finalization
mechanism in
Visual Smalltalk Enterprise. Today Ephemerons are available in
most Smalltalk dialects as well as many other languages with
automatic garbage collection.