Título: | FINALIZERS AND CYCLES IN WEAK TABLES | ||||||||||||||||||||||||||||||||||||||||
Autor: |
ALEXANDRA BARRETO ASSAD DE BARROS |
||||||||||||||||||||||||||||||||||||||||
Colaborador(es): |
ROBERTO IERUSALIMSCHY - Orientador |
||||||||||||||||||||||||||||||||||||||||
Catalogação: | 06/DEZ/2007 | Língua(s): | PORTUGUESE - BRAZIL |
||||||||||||||||||||||||||||||||||||||
Tipo: | TEXT | Subtipo: | THESIS | ||||||||||||||||||||||||||||||||||||||
Notas: |
[pt] Todos os dados constantes dos documentos são de inteira responsabilidade de seus autores. Os dados utilizados nas descrições dos documentos estão em conformidade com os sistemas da administração da PUC-Rio. [en] All data contained in the documents are the sole responsibility of the authors. The data used in the descriptions of the documents are in conformity with the systems of the administration of PUC-Rio. |
||||||||||||||||||||||||||||||||||||||||
Referência(s): |
[pt] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/ETDs/consultas/conteudo.php?strSecao=resultado&nrSeq=10985&idi=1 [en] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/ETDs/consultas/conteudo.php?strSecao=resultado&nrSeq=10985&idi=2 |
||||||||||||||||||||||||||||||||||||||||
DOI: | https://doi.org/10.17771/PUCRio.acad.10985 | ||||||||||||||||||||||||||||||||||||||||
Resumo: | |||||||||||||||||||||||||||||||||||||||||
Weak References and finalizers constitute an elegant
alternative to obtain
control over the interaction between the application and
the garbage collector.
However, in some contexts, finalizers are not necessary
because it`s
possible to extend the weak reference mechanism in order
to give support
to finalization. In this work, we present a survey of the
most common uses
of these mechanisms. We also show how weak references can
replace finalizers
proposing a weak reference based implementation for each
finalizer use.
Based on this survey, we developed a finalization
mechanism based on weak
references for the Lua programming language.
Motivated by our proposal of a better exploration of the
weak reference
mechanism, we developed a solution for an important
problem related to
cycles on weak tables, an structure created using weak
references. Cyclic
references between keys and values prevents the elements
inside the cycle
from being collected, even if they are no more reachable.
This ends up
bringing difficulties to the use of weak tables in certain
kinds of applications.
The Haskell programming language solved this problem
implementing an
adaptation of a mechanism called ephemerons. Based on this
fact, we
modified the Lua garbage collector in order to offer
support to ephemerons.
As a result, we were able to solve the problem of cycles
on weak tables in
Lua.
|
|||||||||||||||||||||||||||||||||||||||||
|