aboutsummaryrefslogtreecommitdiff
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
commiteb49247e9fbbf6edba5512a680e5389687f86786 (patch)
tree74e5144dd806c3e13a61f6e47bb285fd43c0d6f5
parentcdaf3bd9c7f413a5c7c4f1b7d8d2f5c35e8dfa0e (diff)
downloadlanes-eb49247e9fbbf6edba5512a680e5389687f86786.tar.gz
lanes-eb49247e9fbbf6edba5512a680e5389687f86786.tar.bz2
lanes-eb49247e9fbbf6edba5512a680e5389687f86786.zip
version 3.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
-rw-r--r--index.html68
1 files changed, 64 insertions, 4 deletions
diff --git a/index.html b/index.html
index 8b21a97..89710ab 100644
--- a/index.html
+++ b/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>