[fd4e91]: impnotes / final.html Maximize Restore History

Download this file

final.html    18 lines (17 with data), 5.7 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>30.8. Finalization</title><link rel="stylesheet" href="impnotes.css" type="text/css" /><link rev="made" href="mailto:clisp-list@sf.net" /><meta name="generator" content="DocBook XSL Stylesheets V2005-07-12_04:47_snapshot" /><link rel="start" href="index.html" title="Implementation Notes for GNU CLISP." /><link rel="up" href="ext-p-indep.html" title="Chapter 30. Platform Independent Extensions" /><link rel="prev" href="weak.html" title="30.7. Weak Objects" /><link rel="next" href="prompt.html" title="30.9. The Prompt" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">30.8. Finalization</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="weak.html">Prev</a> </td><th width="60%" align="center">Chapter 30. Platform Independent Extensions</th><td width="20%" align="right"> <a accesskey="n" href="prompt.html">Next</a></td></tr></table><hr /></div><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="final"></a>30.8. Finalization</h2></div></div></div><p>Calling <code class="code">(<a href="final.html" title="30.8. Finalization"><code class="function">EXT:FINALIZE</code></a> <em class="replaceable"><code>object</code></em> <em class="replaceable"><code>function</code></em>)</code>
has the effect that when the specified object is being <a href="gc.html" title="Chapter 34. Overview of CLISP's Garbage Collection">garbage-collect</a>ed,
<code class="code">(<a href="http://www.lisp.org/HyperSpec/Body/fun_funcall.html" target="_top"><code class="function">FUNCALL</code></a> <em class="replaceable"><code>function</code></em> <em class="replaceable"><code>object</code></em>)</code> will be executed.</p><p>Calling <code class="code">(<a href="final.html" title="30.8. Finalization"><code class="function">EXT:FINALIZE</code></a> <em class="replaceable"><code>object</code></em> <em class="replaceable"><code>function</code></em>
<em class="replaceable"><code>guardian</code></em>)</code>
has a similar effect, but only as long as the
<em class="replaceable"><code>guardian</code></em> has not been <a href="gc.html" title="Chapter 34. Overview of CLISP's Garbage Collection">garbage-collect</a>ed:
when <em class="replaceable"><code>object</code></em> is being <a href="gc.html" title="Chapter 34. Overview of CLISP's Garbage Collection">garbage-collect</a>ed, <code class="code">(<a href="http://www.lisp.org/HyperSpec/Body/fun_funcall.html" target="_top"><code class="function">FUNCALL</code></a> <em class="replaceable"><code>function</code></em>
<em class="replaceable"><code>object</code></em> <em class="replaceable"><code>guardian</code></em>)</code> will be executed.
If the <em class="replaceable"><code>guardian</code></em> is <a href="gc.html" title="Chapter 34. Overview of CLISP's Garbage Collection">garbage-collect</a>ed before <em class="replaceable"><code>object</code></em>
is, nothing happens.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The time when “<span class="quote">the <em class="replaceable"><code>object</code></em> is being <a href="gc.html" title="Chapter 34. Overview of CLISP's Garbage Collection">garbage-collect</a>ed</span>” is
not defined deterministically. (Actually, it might possibly never
occur.) It denotes a moment at which no references to <em class="replaceable"><code>object</code></em>
exist from other Lisp objects. When the <em class="replaceable"><code>function</code></em> is called,
<em class="replaceable"><code>object</code></em> (and possibly <em class="replaceable"><code>guardian</code></em>) enter
the “<span class="quote">arena of live Lisp objects</span>” again.</p></div><p>No finalization request will be executed more than once.</p></div><div class="bookinfo"><hr width="100%" /><table width="100%" summary="impnotes meta info"><th><td align="left">These notes document <a href="http://clisp.cons.org" target="_top"><span><strong class="command">CLISP</strong></span></a> version 2.34.</td><td align="right">Last modified: 2005-07-20</td></th></table></div><div class="custom-footer"><hr width="100%" /><table width="100%"><tr><td align="left"><a href="http://clisp.cons.org"><img src="clisp.png" width="48" height="48" alt="[CLISP home]" /></a></td><td align="center"><a href="http://www.gnu.org"><img src="http://www.gnu.org/graphics/gnubanner.jpg" width="468" height="60" alt="[Come and see what GNU creates for YOU]" /></a></td><td align="right"><a href="http://sourceforge.net"><img width="125" height="37" alt="[SourceForge]" src="http://sflogo.sourceforge.net/sflogo.php?group_id=1355&amp;type=2&amp;page=final" /></a></td></tr></table></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="weak.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ext-p-indep.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="prompt.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">30.7. Weak Objects </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 30.9. The Prompt</td></tr></table></div></body></html>