From 974aa4343cf900938b5d357d10798d91faf60f5a Mon Sep 17 00:00:00 2001
From: Benoit Germain
Date: Mon, 21 Feb 2011 20:33:39 +0100
Subject: Make the number of internal keeper states selectable by an optional
parameter passed to require.
---
docs/index.html | 41 ++++++++++++++++++++++++++++++++---------
1 file changed, 32 insertions(+), 9 deletions(-)
(limited to 'docs')
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 @@
Copyright © 2007-11 Asko Kauppi. All rights reserved.
Lua Lanes is published under the same MIT license as Lua 5.1.
-
This document was revised on 12-Feb-11, and applies to version 2.0.11.
+
This document was revised on 21-Feb-11, and applies to version 2.1.0.
@@ -817,12 +817,12 @@ can be used for custom userdata as well. Here's what to do.
"delete": receives this same pointer on the stack, and should cleanup the object.
"metatable": should build a metatable for the object. Don't cache the metatable
-yourself, Lanes takes care of it ("metatable" should only be invoked once).
+ yourself, Lanes takes care of it ("metatable" should only be invoked once).
"module": is the name of the module that exports the idfunc,
-to be pushed on the stack as a string. It is necessary so that Lanes can require it in
-any Lane and keeper state that receives a userdata. This is to prevent crashes in situations
-where the module could be unloaded while the idfunc pointer is still held.
+ to be pushed on the stack as a string. It is necessary so that Lanes can require it in
+ any Lane and keeper state that receives a userdata. This is to prevent crashes in situations
+ where the module could be unloaded while the idfunc pointer is still held.
Take a look at linda_id in lanes.c.
@@ -917,10 +917,10 @@ Here are some things one should consider, if best performance is vital:
merged into one main timer state (see timer.lua); no OS side
timers are utilized.
- Lindas are hashed to a fixed number of "keeper states", which are a locking entity.
- If you are using a lot of Linda objects,
- it may be useful to try having more of these keeper states. By default,
- only one is used (see KEEPER_STATES_N), but this is an implementation detail.
+ Lindas are hashed to a number of "keeper states", which are a locking entity.
+ If you are using a lot of Linda objects, it may be useful to try having more of
+ these keeper states. By default, only one is used but this is an implementation detail.
+ It is possible to require( "lanes", N) to use more keeper states.
@@ -952,6 +952,29 @@ its actual value.
Change log
+Feb-2011 (2.1.0)
+
+ - Added an auto-require mechanism to ensure any deep userdata transiting in a lane causes its parent module to be required in that lane
+
+ - 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
+ - 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
+ - When a module must be required, raise an error if the 'require' function is not found in the target state
+ - 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
+
+
+ - Fixed application hang-up because keeper state was not released in case of errors thrown by inter-state data copy for unsupported types
+ - Refactor lane proxy implementation: it is now a full userdata instead of a table, and its methods are implemented in C instead of Lua
+
+ - its metatable is no longer accessible
+ - writing to the proxy raises an error
+ - it is no longer possible to overwrite its join() and cancel() methods
+
+
+ - Moved keeper-related code in a separate source file
+ - keeper.lua is now embedded in text form instead of bytecode to improve LuaJIT2-compatibility
+ - Make the number of internal keeper states selctable by an optional parameter passed to require.
+
+
Feb-2011 (2.0.11):
- Fixed bug where reference to Linda object was dropped for a short time (crashing if GC was run during that time).
--
cgit v1.2.3-55-g6feb