diff options
author | Benoit Germain <bnt.germain@gmail.com> | 2011-02-21 20:33:39 +0100 |
---|---|---|
committer | Benoit Germain <bnt.germain@gmail.com> | 2011-02-21 20:33:39 +0100 |
commit | 974aa4343cf900938b5d357d10798d91faf60f5a (patch) | |
tree | b71a342e26ce04c447955f2fc135b69760ab7837 /docs | |
parent | 1760eafa1d2ebce8f07e11414a53d4a251af5b8e (diff) | |
download | lanes-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.html | 41 |
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 © 2007-11 Asko Kauppi. All rights reserved.</i> | 57 | <p><br/><font size="-1"><i>Copyright © 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 |
820 | yourself, 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, |
823 | to 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 |
824 | any 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 |
825 | where 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> |
827 | Take a look at <tt>linda_id</tt> in <tt>lanes.c</tt>. | 827 | Take 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> |
955 | Feb-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 | |||
955 | Feb-2011 (2.0.11): | 978 | Feb-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> |