aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorBenoit Germain <bnt.germain@gmail.com>2011-02-21 20:33:39 +0100
committerBenoit Germain <bnt.germain@gmail.com>2011-02-21 20:33:39 +0100
commit974aa4343cf900938b5d357d10798d91faf60f5a (patch)
treeb71a342e26ce04c447955f2fc135b69760ab7837 /docs
parent1760eafa1d2ebce8f07e11414a53d4a251af5b8e (diff)
downloadlanes-974aa4343cf900938b5d357d10798d91faf60f5a.tar.gz
lanes-974aa4343cf900938b5d357d10798d91faf60f5a.tar.bz2
lanes-974aa4343cf900938b5d357d10798d91faf60f5a.zip
Make the number of internal keeper states selectable by an optional parameter passed to require.
Diffstat (limited to 'docs')
-rw-r--r--docs/index.html41
1 files changed, 32 insertions, 9 deletions
diff --git a/docs/index.html b/docs/index.html
index a28dd41..3d2ecf2 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -56,7 +56,7 @@
56 56
57<p><br/><font size="-1"><i>Copyright &copy; 2007-11 Asko Kauppi. All rights reserved.</i> 57<p><br/><font size="-1"><i>Copyright &copy; 2007-11 Asko Kauppi. All rights reserved.</i>
58 <br>Lua Lanes is published under the same <A HREF="http://en.wikipedia.org/wiki/MIT_License">MIT license</A> as Lua 5.1. 58 <br>Lua Lanes is published under the same <A HREF="http://en.wikipedia.org/wiki/MIT_License">MIT license</A> as Lua 5.1.
59 </p><p>This document was revised on 12-Feb-11, and applies to version 2.0.11. 59 </p><p>This document was revised on 21-Feb-11, and applies to version 2.1.0.
60</font></p> 60</font></p>
61 61
62</center> 62</center>
@@ -817,12 +817,12 @@ can be used for custom userdata as well. Here's what to do.
817 <tt>"delete"</tt>: receives this same pointer on the stack, and should cleanup the object.</li> 817 <tt>"delete"</tt>: receives this same pointer on the stack, and should cleanup the object.</li>
818 <li> 818 <li>
819 <tt>"metatable"</tt>: should build a metatable for the object. Don't cache the metatable 819 <tt>"metatable"</tt>: should build a metatable for the object. Don't cache the metatable
820yourself, Lanes takes care of it ("metatable" should only be invoked once).</li> 820 yourself, Lanes takes care of it ("metatable" should only be invoked once).</li>
821 <li> 821 <li>
822 <tt>"module"</tt>: is the name of the module that exports the idfunc, 822 <tt>"module"</tt>: is the name of the module that exports the idfunc,
823to be pushed on the stack as a string. It is necessary so that Lanes can require it in 823 to be pushed on the stack as a string. It is necessary so that Lanes can require it in
824any Lane and keeper state that receives a userdata. This is to prevent crashes in situations 824 any Lane and keeper state that receives a userdata. This is to prevent crashes in situations
825where the module could be unloaded while the idfunc pointer is still held.</li> 825 where the module could be unloaded while the idfunc pointer is still held.</li>
826</ul> 826</ul>
827Take a look at <tt>linda_id</tt> in <tt>lanes.c</tt>. 827Take a look at <tt>linda_id</tt> in <tt>lanes.c</tt>.
828 </li> 828 </li>
@@ -917,10 +917,10 @@ Here are some things one should consider, if best performance is vital:
917 merged into one main timer state (see <tt>timer.lua</tt>); no OS side 917 merged into one main timer state (see <tt>timer.lua</tt>); no OS side
918 timers are utilized. 918 timers are utilized.
919 </li> 919 </li>
920 <li>Lindas are hashed to a fixed number of "keeper states", which are a locking entity. 920 <li>Lindas are hashed to a number of "keeper states", which are a locking entity.
921 If you are using a lot of Linda objects, 921 If you are using a lot of Linda objects, it may be useful to try having more of
922 it may be useful to try having more of these keeper states. By default, 922 these keeper states. By default, only one is used but this is an implementation detail.
923 only one is used (see <tt>KEEPER_STATES_N</tt>), but this is an implementation detail. 923 It is possible to <tt>require( "lanes", N)</tt> to use more keeper states.
924 </li> 924 </li>
925</ul> 925</ul>
926</p> 926</p>
@@ -952,6 +952,29 @@ its actual value.
952<h2 id="changes">Change log</h2> 952<h2 id="changes">Change log</h2>
953 953
954<p> 954<p>
955Feb-2011 (2.1.0)
956<ul>
957 <li>Added an auto-require mechanism to ensure any deep userdata transiting in a lane causes its parent module to be required in that lane
958 <ul>
959 <li>Changed idfunc signature and contract to clarify the fact it is not lua-callable and to be able to require the module it was exported from in the target lanes</li>
960 <li>When a deep userdata idfunc requests a module to be required, manually check that it is not loaded before requiring it instead of relying on the require function's loop detection feature</li>
961 <li>When a module must be required, raise an error if the 'require' function is not found in the target state</li>
962 <li>We know Lanes is loaded in the master state, so we don't force it to be required in every lane too when a linda deep userdata is copied</li>
963 </ul>
964 </li>
965 <li>Fixed application hang-up because keeper state was not released in case of errors thrown by inter-state data copy for unsupported types</li>
966 <li>Refactor lane proxy implementation: it is now a full userdata instead of a table, and its methods are implemented in C instead of Lua
967 <ul>
968 <li>its metatable is no longer accessible</li>
969 <li>writing to the proxy raises an error</li>
970 <li>it is no longer possible to overwrite its join() and cancel() methods</li>
971 </ul>
972 </li>
973 <li>Moved keeper-related code in a separate source file</li>
974 <li>keeper.lua is now embedded in text form instead of bytecode to improve LuaJIT2-compatibility</li>
975 <li>Make the number of internal keeper states selctable by an optional parameter passed to require.</li>
976</ul>
977
955Feb-2011 (2.0.11): 978Feb-2011 (2.0.11):
956<ul> 979<ul>
957 <li>Fixed bug where reference to Linda object was dropped for a short time (crashing if GC was run during that time).</li> 980 <li>Fixed bug where reference to Linda object was dropped for a short time (crashing if GC was run during that time).</li>