summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorBenoit Germain <bnt.germain@gmail.com>2013-02-13 20:30:04 +0100
committerBenoit Germain <bnt.germain@gmail.com>2013-02-13 20:30:26 +0100
commit577bca074df12c520f49e9361381f0cad78200c1 (patch)
tree188a4d1e3366a9351ea5b9689efbaf3f98996100 /docs
parent131c11c2ae327de5b4db743a6a81eb9b57470d0e (diff)
downloadlanes-3.5.1.tar.gz
lanes-3.5.1.tar.bz2
lanes-3.5.1.zip
version 3.5.1v3.5.1
* new lanes.h header and API call luaopen_lanes_embedded() for embedders * "lanes.core" is an acceptable library in the generator libs argument * library "*" wildcard also opens lanes.core * tweaked code for Xbox 360 build
Diffstat (limited to '')
-rw-r--r--docs/index.html68
1 files changed, 64 insertions, 4 deletions
diff --git a/docs/index.html b/docs/index.html
index 8b21a97..89710ab 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -37,7 +37,8 @@
37 <p class="bar"> 37 <p class="bar">
38 <a href="#description">Description</a> &middot; 38 <a href="#description">Description</a> &middot;
39 <a href="#systems">Supported systems</a> &middot; 39 <a href="#systems">Supported systems</a> &middot;
40 <a href="#installing">Building and Installing</a> 40 <a href="#installing">Building and Installing</a> &middot;
41 <a href="#embedding">Embedding</a>
41 </p> 42 </p>
42 43
43 <p class="bar"> 44 <p class="bar">
@@ -69,7 +70,7 @@
69 </p> 70 </p>
70 71
71 <p> 72 <p>
72 This document was revised on 30-Jan-13, and applies to version <tt>3.5.0</tt>. 73 This document was revised on 12-Feb-13, and applies to version <tt>3.5.1</tt>.
73 </p> 74 </p>
74 </font> 75 </font>
75 </center> 76 </center>
@@ -164,6 +165,65 @@
164</pre> 165</pre>
165 166
166 167
168<!-- embedding +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
169<hr/>
170<h2 id="embedding">Embedding</h2>
171<p>
172 When Lanes is embedded, it is possible to statically initialize with
173</p>
174<table border=1 bgcolor="#E0E0FF" cellpadding="10" style="width:50%">
175 <tr>
176 <td>
177 <pre> extern void LANES_API luaopen_lanes_embedded( lua_State* L, lua_CFunction _luaopen_lanes);</pre>
178 </td>
179 </tr>
180</table>
181<p>
182 <tt>luaopen_lanes_embedded</tt> leaves the module table on the stack. <tt>lanes.configure()</tt> must still be called in order to use Lanes.
183 <br/>
184 If <tt>_luaopen_lanes</tt> is <tt>NULL</tt>, a default loader will simply attempt the equivalent of <tt>luaL_dofile( L, "lanes.lua")</tt>.
185</p>
186
187<p>
188 To embed Lanes, compile source files in you application. In any Lua state were you want to use Lanes, initialize it as follows:
189</p>
190
191<p>
192 <table border="1" bgcolor="#FFFFE0" cellpadding="10" style="width:50%">
193 <tr>
194 <td>
195 <pre> #include "lanes.h"</pre>
196 <br/>
197 <pre> int load_lanes_lua( lua_State* L)</pre>
198 <pre> {</pre>
199 <pre> // retrieve lanes.lua from wherever it is stored and return the result of its execution</pre>
200 <pre> // trivial example 1:</pre>
201 <pre> luaL_dofile( L, "lanes.lua");</pre>
202 <br/>
203 <pre> // trivial example 2:</pre>
204 <pre> luaL_dostring( L, bin2c_lanes_lua);</pre>
205 <pre> }</pre>
206 <br/>
207 <pre> void embed_lanes( lua_State* L)</pre>
208 <pre> {</pre>
209 <pre> // we need base libraries for Lanes for work</pre>
210 <pre> luaL_openlibs( L);</pre>
211 <pre> ...</pre>
212 <pre> // will attempt luaL_dofile( L, "lanes.lua");</pre>
213 <pre> luaopen_lanes_embedded( L, NULL);</pre>
214 <pre> lua_pop( L, 1);</pre>
215 <pre> // another example with a custom loader</pre>
216 <pre> luaopen_lanes_embedded( L, load_lanes_lua);</pre>
217 <pre> lua_pop( L, 1);</pre>
218 <br/>
219 <pre> // a little test to make sure things work as expected</pre>
220 <pre> luaL_dostring( L, "local lanes = require 'lanes'.configure{with_timers = false}; local l = lanes.linda()");</pre>
221 <pre> }</pre>
222 </td>
223 </tr>
224 </table>
225</p>
226
167<!-- launching +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> 227<!-- launching +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
168<hr/> 228<hr/>
169 229
@@ -438,7 +498,7 @@
438 </td> 498 </td>
439 <td/> 499 <td/>
440 <td> 500 <td>
441 All standard libraries (including those specific to LuaJIT and not listed above). This must be used alone. 501 All standard libraries (including those specific to LuaJIT and not listed above), as well as <tt>lanes.core</tt>. This must be used alone.
442 </td> 502 </td>
443 </tr> 503 </tr>
444 </table> 504 </table>
@@ -765,7 +825,7 @@
765</p> 825</p>
766 826
767<p> 827<p>
768 If the lane is still running after the timeout expired and <tt>force_kill</tt> is <tt>true</tt>, the OS thread running the lane is forcefully killed. This means no GC, and should generally be the last resort. 828 If the lane is still running after the timeout expired and <tt>force_kill</tt> is <tt>true</tt>, the OS thread running the lane is forcefully killed. This means no GC, probable OS resource leaks (thread stack, locks, DLL notifications), and should generally be the last resort.
769</p> 829</p>
770 830
771<p> 831<p>