<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta name="robots" content="index,nofollow">



<title>MLtonWeak - MLton Standard ML Compiler (SML Compiler)</title>
<link rel="stylesheet" type="text/css" charset="iso-8859-1" media="all" href="common.css">
<link rel="stylesheet" type="text/css" charset="iso-8859-1" media="screen" href="screen.css">
<link rel="stylesheet" type="text/css" charset="iso-8859-1" media="print" href="print.css">


<link rel="Start" href="Home">


</head>

<body lang="en" dir="ltr">

<table bgcolor = lightblue cellspacing = 0 style = "border: 0px;" width = 100%>
  <tr>
    <td style = "
		border: 0px;
		color: darkblue; 
		font-size: 150%;
		text-align: left;">
      <a class = mltona href="Home">MLton 20051202</a>
    <td style = "
		border: 0px;
		font-size: 150%;
		text-align: center;
		width: 50%;">
      MLtonWeak
    <td style = "
		border: 0px;
		text-align: right;">
      <table cellspacing = 0 style = "border: 0px">
        <tr style = "vertical-align: middle;">
      </table>
  <tr style = "background-color: white;">
    <td colspan = 3
	style = "
		border: 0px;
		font-size:70%;
		text-align: right;">
      <a href = "Home">Home</a>
      &nbsp;<a href = "Index">Index</a>
      &nbsp;
</table>
<div id="content" lang="en" dir="ltr">

<pre class=code>
<B><FONT COLOR="#0000FF">signature</FONT></B> MLTON_WEAK =
   <B><FONT COLOR="#0000FF">sig</FONT></B>
      <B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> 'a t

      </FONT></B><B><FONT COLOR="#A020F0">val</FONT></B> get: 'a t -&gt; 'a option
      <B><FONT COLOR="#A020F0">val</FONT></B> new: 'a -&gt; 'a t
   <B><FONT COLOR="#0000FF">end</FONT></B>
</PRE>
<p>
 
</p>
<p>
A weak pointer is a pointer to an object that is nulled if the object becomes unreachable due to garbage collection.  The weak pointer does not itself cause the object it points to be retained by the garbage collector -- only other strong pointers can do that. For objects that are not allocated in the heap, like integers, a weak pointer will always be nulled.  So, if <tt>w:&nbsp;int&nbsp;Weak.t</tt> then <tt>Weak.get&nbsp;w&nbsp;=&nbsp;NONE</tt>. 
</p>

    <ul>

    <li>
<p>
 <tt>type&nbsp;'a&nbsp;t</tt> 
</p>
</li>

        <ul>

  the type of weak pointers to objects of type <tt>'a</tt> 
        </ul>


    <li class="gap">
<p>
 <tt>get&nbsp;w</tt> 
</p>
</li>

        <ul>

  returns <tt>NONE</tt> if the object pointed to by <tt>w</tt> no longer   exists.  Otherwise, returns <tt>SOME</tt> of the object pointed to by   <tt>w</tt>. 
        </ul>


    <li class="gap">
<p>
 <tt>new&nbsp;x</tt> 
</p>
</li>

        <ul>

  returns a weak pointer to <tt>x</tt>. </ul>

</ul>

</div>



<p>
<hr>
Last edited on 2004-11-02 04:31:46 by <span title="adsl-67-124-249-200.dsl.snfc21.pacbell.net"><a href="StephenWeeks">StephenWeeks</a></span>.
</body></html>
