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
|
<HTML><HEAD>
<TITLE>Tcl API Reference -- ns_share</TITLE>
<LINK rel=Previous href="tapi-122.htm">
<LINK rel=ToC href="toc.htm">
<LINK rel=Index href="master.htm">
<LINK rel=Next href="tapi-124.htm">
</HEAD><BODY BGCOLOR="#ffffff"><A NAME="topofpage"></A>
<TABLE WIDTH=100%>
<TR>
<TD ALIGN=LEFT>
<A NAME="topofpage"></A> <IMG SRC="as-c-sm.gif">
</TD>
<TD ALIGN=RIGHT>
<A href="tapi-122.htm"><IMG BORDER="0" src=navbprev.gif alt="[ Previous ]"></A>
<A href=toc.htm> <IMG BORDER="0" src=navbhome.gif alt="[ Contents ]"></A>
<A href=master.htm> <IMG BORDER="0" src=navbhelp.gif alt="[ Index ]"></A>
<A href="tapi-124.htm"> <IMG BORDER="0" src=navbnext.gif alt="[ Next ]"></A>
<A name="7983"> </A>
</TD>
</TR>
</TABLE>
<a name="147998">
</a><h3>ns_share</h3>
<a name="147999">
</a><h4>Overview</h4>
<p><a name="148000">
</a>Share variable among all Tcl interpreters</p>
<a name="148001">
</a><h4>Syntax</h4>
<p><a name="148002">
</a><b>ns_share</b> -init {<i>initscript</i>} <i>variable</i> ...</p>
<a name="148003">
</a><h4>Description</h4>
<p><a name="148067">
</a>Makes the specified variable(s) available to all Tcl interpreters in a virtual server. Normally, variables are only available to the current Tcl interpreter, unless the SharedGlobals parameter is On. Usually, <b>ns_share</b> should be called in a script designed to be run only once, such as in the <code>init.tcl</code> script for private or shared libraries.</p>
<p><a name="216526">
</a>Multiple variables can be specified by separating the variable names with spaces:</p>
<pre> <a name="148068"></a>ns_share count length width
</pre><p><p><a name="148069">
</a>You can optionally specify an init script when you share a single variable (not when sharing multiple variables) to initialize the variable at the same time. The following example sets the variable count to 0 immediately after sharing it, and the next line increments it to 1:</p>
<pre> <a name="148070"></a>ns_share -init {set count 0} count
<a name="148071"></a>incr count
</pre><p><p><a name="148072">
</a> You can initialize shared arrays like this:</p>
<pre> <a name="148073"></a>ns_share -init {
<a name="148074"></a> set itemlist(a) "Value 1"
<a name="148075"></a> set itemlist(b) "Value 2"
<a name="148076"></a>) itemlist
</pre><p><p><a name="148077">
</a>Unlike global variables, shared variables are not available by default at the global level. You must share a variable at the top level also and not just in procedures that want to reference the variable. For example:</p>
<pre> <a name="148078"></a>ns_share pagelength
<a name="148079"></a>set pagelength "50"
<a name="148080"></a>proc page { conn i } {
<a name="148081"></a> ns_share pagelength
<a name="148082"></a> ...
<a name="148064"></a>}
</pre><p>
<TABLE BORDER="2" CELLPADDING="1" width="100%">
<TR><TD COLSPAN=3><P ALIGN=Center>
<IMG SRC="bluebult.gif">
<A HREF="#topofpage">
<FONT SIZE=-1>Top of Page</FONT></A>
<IMG SRC="bluebult.gif">
</TD></TR>
<TR><TD COLSPAN=3><P ALIGN=Center>
<A href="tapi-122.htm">
<IMG BORDER="0" src=navbprev.gif alt="[ Previous ]"></A>
<A href=toc.htm>
<IMG BORDER="0" src=navbhome.gif alt="[ Contents ]"></A>
<A href=master.htm>
<IMG BORDER="0" src=navbhelp.gif alt="[ Index ]"></A>
<A href="tapi-124.htm">
<IMG BORDER="0" src=navbnext.gif alt="[ Next ]"></A>
<BR align=center>
<FONT size=-1>Copyright © 1998-99 America Online,
Inc.</FONT>
</TD></TR></TABLE></BODY></HTML>
|