1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <meta http-equiv="Content-Style-Type" content="text/css" /> 6 <link rel="stylesheet" href="../../../css/manpage.css" type="text/css" /> 7<title>Destruct</title> 8 </head> 9 <body> 10<h1><CODE><a href="../../../nn/Overview.html">nn</a>::<a href="../../../nn/os/Overview.html">os</a>::<a href="../../../nn/os/AutoStackManager/Overview.html">AutoStackManager</a>::Destruct</CODE> Member Function</h1> 11<h2>Syntax</h2> 12 <div class="section"> 13 <pre class="definition"> 14virtual void Destruct( 15 void * pStackBottom, 16 bool isError 17) = 0; 18</pre> 19 </div> 20<h2>Parameters</h2> 21 <div class="section"> 22 <table class="arguments"> 23 <thead> 24 <tr> 25 <td width="15" /> 26<th>Name</th> 27<td>Description</td> 28 </tr> 29 </thead> 30 <tr> 31<td>in</td> 32<th>pStackBottom</th> 33<td>The stack to release.</td> 34 </tr> 35 <tr> 36<td>in</td> 37<th>isError</th> 38<td>Indicates whether it is being released because an error occurred.</td> 39 </tr> </table> 40 </div> 41<h2>Return Values</h2> 42 <div class="section"> 43None. 44 </div> 45<h2>Description</h2> 46 <div class="section"> 47<p>Releases the memory for the stack.</p><p>This function is a pure virtual function. This function itself cannot be called. You must implement a derived class in accordance with the specifications described here.</p><p>Releases the memory region passed to <SPAN class="argument">pStackBottom</SPAN>. The value of <SPAN class="argument">pStackBottom</SPAN> is one of the values returned by the <CODE><a href="../../../nn/os/AutoStackManager/Construct.html">Construct</a></CODE> function at some point before this function is called.</p><p>If <SPAN class="argument">isError</SPAN> is <CODE>true</CODE>, it indicates that the temporarily allocated stack must be deallocated because an error occurred while initializing a thread with the <a href="../../../nn/os/Thread/StartUsingAutoStack.html"><CODE>Thread::StartUsingAutoStack</CODE></a> or <a href="../../../nn/os/Thread/TryStartUsingAutoStack.html"><CODE>Thread::TryStartUsingAutoStack</CODE></a> function. In this situation, <SPAN class="argument">pStackBottom</SPAN> takes the value returned by the same thread's immediately previous call to the <a href="../../../nn/os/AutoStackManager/Construct.html"><CODE>Construct</CODE></a> function.</p><p>If <SPAN class="argument">isError</SPAN> is <CODE>false</CODE>, it means that the thread using the stack indicated by <SPAN class="argument">pStackBottom</SPAN> is being destroyed, so the stack will now be released.</p><p>If a derived class instance was specified by the <CODE><a href="../../../nn/os/Thread/SetAutoStackManager.html">Thread::SetAutoStackManager</a></CODE> function, the context that is called will differ depending on the value of <SPAN class="argument">isError</SPAN>. If <SPAN class="argument">isError</SPAN> is <CODE>true</CODE>, the <CODE>ThreadStartUsingAutoStack</CODE> or <CODE><a href="../../../nn/os/Thread/TryStartUsingAutoStack.html">Thread::TryStartUsingAutoStack</a></CODE> function will perform the call. If <SPAN class="argument">isError</SPAN> is <CODE>false</CODE>, the call uses the context of the thread that is using <SPAN class="argument">pStackBottom</SPAN>.</p><p><B>Note:</B> When <SPAN class="argument">isError</SPAN> is <CODE>false</CODE>, this function itself is using <SPAN class="argument">pStackBottom</SPAN> as its stack. Before releasing <SPAN class="argument">pStackBottom</SPAN>, you need to either change the stack to use a different memory region, or release the memory without using a stack. When <SPAN class="argument">isError</SPAN> is <CODE>false</CODE>, the stack is not used after control returns from this function, so it is not a problem if the stack is in an unusable state when this function returns.</p><!-- write here --></div> 48<h2>Revision History</h2> 49 <div class="section"> 50 <dl class="history"> 51 <dt>2011/10/27</dt> 52<dd>Initial version.<br /> 53 </dd> 54 </dl> 55 </div> 56 <hr><p>CONFIDENTIAL</p></body> 57</html> 58