summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-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>