<div class="gmail_quote">On Sat, Mar 20, 2010 at 1:15 PM, Alexander Gavrilov <span dir="ltr"><<a href="mailto:angavrilov@gmail.com">angavrilov@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">By the way, I don't actually understand the logic with the</div>
custom finalizer queue. I looked at the source code of the<br>
garbage collector, and it seems that it has similar queue<br>
functionality built in.</blockquote><div><br></div><div>I have explained it before, a couple of days or so, regarding another finalization patch.</div><div><br></div><div>The situation when I wrote the code was the following:</div>
<div><br></div><div>- Function A allocates memory and there is not enough left</div><div>- The garbage collector gets invoked</div><div>- Certain objects are marked as unreachable and, if they have a finalizer, added to a private queue of the collector.</div>
<div>- At this point the collector has a list of objects on which to invoke finalizers and it does so. The world is still stopped. Allocating memory is still unsafe. Invocation of finalizers may turn some of these objects into reachable, thus "bringing them back to life".</div>
<div>- Remaining tasks for the collector are performed.</div></div><br clear="all">The objective of the current implementation in ECL was thus<div><br></div><div>- Only trivial finalizers are invoked. All objects with a lisp finalizer are pushed into a queue and thus brought back to life.</div>
<div>- At some later point, when it is safe, finalizers are invoked and the list is cleared.<br><div><br></div><div>The problem now is double. One problem is that the code in the collector has changed. I now see that finalizers are explicitely invoked outside the garbage collector. That is a novelty. The other problem is that our code does not do what is expected because sometimes the finalization may be broken if more than one object should be in the queue.</div>
<div><br></div><div>I am having a second look at the code.</div><div><br></div><div>Juanjo</div><div><br>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://tream.dreamhosters.com">http://tream.dreamhosters.com</a><br>

</div></div>