/usr/share/doc/octave/octave.html/Function-Locking.html is in octave-doc 4.2.2-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Function Locking (GNU Octave)</title>
<meta name="description" content="Function Locking (GNU Octave)">
<meta name="keywords" content="Function Locking (GNU Octave)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Function-Files.html#Function-Files" rel="up" title="Function Files">
<link href="Function-Precedence.html#Function-Precedence" rel="next" title="Function Precedence">
<link href="Overloading-and-Autoloading.html#Overloading-and-Autoloading" rel="prev" title="Overloading and Autoloading">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="octave.css">
</head>
<body lang="en">
<a name="Function-Locking"></a>
<div class="header">
<p>
Next: <a href="Function-Precedence.html#Function-Precedence" accesskey="n" rel="next">Function Precedence</a>, Previous: <a href="Overloading-and-Autoloading.html#Overloading-and-Autoloading" accesskey="p" rel="prev">Overloading and Autoloading</a>, Up: <a href="Function-Files.html#Function-Files" accesskey="u" rel="up">Function Files</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Function-Locking-1"></a>
<h4 class="subsection">11.9.6 Function Locking</h4>
<p>It is sometime desirable to lock a function into memory with the
<code>mlock</code> function. This is typically used for dynamically linked
functions in Oct-files or mex-files that contain some initialization,
and it is desirable that calling <code>clear</code> does not remove this
initialization.
</p>
<p>As an example,
</p>
<div class="example">
<pre class="example">function my_function ()
mlock ();
…
</pre></div>
<p>prevents <code>my_function</code> from being removed from memory after it is
called, even if <code>clear</code> is called. It is possible to determine if
a function is locked into memory with the <code>mislocked</code>, and to unlock
a function with <code>munlock</code>, which the following illustrates.
</p>
<div class="example">
<pre class="example">my_function ();
mislocked ("my_function")
⇒ ans = 1
munlock ("my_function");
mislocked ("my_function")
⇒ ans = 0
</pre></div>
<p>A common use of <code>mlock</code> is to prevent persistent variables from
being removed from memory, as the following example shows:
</p>
<div class="example">
<pre class="example">function count_calls ()
mlock ();
persistent calls = 0;
printf ("'count_calls' has been called %d times\n",
++calls);
endfunction
count_calls ();
-| 'count_calls' has been called 1 times
clear count_calls
count_calls ();
-| 'count_calls' has been called 2 times
</pre></div>
<p><code>mlock</code> might equally be used to prevent changes to a function from having
effect in Octave, though a similar effect can be had with the
<code>ignore_function_time_stamp</code> function.
</p>
<a name="XREFmlock"></a><dl>
<dt><a name="index-mlock"></a>: <em></em> <strong>mlock</strong> <em>()</em></dt>
<dd><p>Lock the current function into memory so that it can’t be cleared.
</p>
<p><strong>See also:</strong> <a href="#XREFmunlock">munlock</a>, <a href="#XREFmislocked">mislocked</a>, <a href="Persistent-Variables.html#XREFpersistent">persistent</a>.
</p></dd></dl>
<a name="XREFmunlock"></a><dl>
<dt><a name="index-munlock"></a>: <em></em> <strong>munlock</strong> <em>()</em></dt>
<dt><a name="index-munlock-1"></a>: <em></em> <strong>munlock</strong> <em>(<var>fcn</var>)</em></dt>
<dd><p>Unlock the named function <var>fcn</var>.
</p>
<p>If no function is named then unlock the current function.
</p>
<p><strong>See also:</strong> <a href="#XREFmlock">mlock</a>, <a href="#XREFmislocked">mislocked</a>, <a href="Persistent-Variables.html#XREFpersistent">persistent</a>.
</p></dd></dl>
<a name="XREFmislocked"></a><dl>
<dt><a name="index-mislocked"></a>: <em></em> <strong>mislocked</strong> <em>()</em></dt>
<dt><a name="index-mislocked-1"></a>: <em></em> <strong>mislocked</strong> <em>(<var>fcn</var>)</em></dt>
<dd><p>Return true if the named function <var>fcn</var> is locked.
</p>
<p>If no function is named then return true if the current function is locked.
</p>
<p><strong>See also:</strong> <a href="#XREFmlock">mlock</a>, <a href="#XREFmunlock">munlock</a>, <a href="Persistent-Variables.html#XREFpersistent">persistent</a>.
</p></dd></dl>
<hr>
<div class="header">
<p>
Next: <a href="Function-Precedence.html#Function-Precedence" accesskey="n" rel="next">Function Precedence</a>, Previous: <a href="Overloading-and-Autoloading.html#Overloading-and-Autoloading" accesskey="p" rel="prev">Overloading and Autoloading</a>, Up: <a href="Function-Files.html#Function-Files" accesskey="u" rel="up">Function Files</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|