summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/BLua.cc11
-rw-r--r--lib/LuaHttp.cc4
2 files changed, 11 insertions, 4 deletions
diff --git a/lib/BLua.cc b/lib/BLua.cc
index d65b553..ac1f8e8 100644
--- a/lib/BLua.cc
+++ b/lib/BLua.cc
@@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-/* $Id: BLua.cc,v 1.47 2007-05-30 11:57:09 pixel Exp $ */
+/* $Id: BLua.cc,v 1.48 2007-05-30 22:36:31 pixel Exp $ */
#include <stdlib.h>
#include "BLua.h"
@@ -402,6 +402,8 @@ Lua::Lua() : L(lua_open()), _protected(false), _is_thread(false) {
push("BLUA_THREADS");
newtable();
settable(LUA_REGISTRYINDEX);
+
+ father = 0;
}
Lua::Lua(lua_State * __L) : L(__L), _protected(false), _is_thread(true) {
@@ -413,8 +415,13 @@ Lua::Lua(lua_State * __L) : L(__L), _protected(false), _is_thread(true) {
}
+Lua * Lua::Father() {
+ return father ? father : this;
+}
+
Lua * Lua::spawn_from_thread(lua_State * __L) {
- return new Lua(__L);
+ Lua * L = new Lua(__L);
+ L->father = Father();
}
Lua::~Lua() {
diff --git a/lib/LuaHttp.cc b/lib/LuaHttp.cc
index 8f2b2e3..92af759 100644
--- a/lib/LuaHttp.cc
+++ b/lib/LuaHttp.cc
@@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-/* $Id: LuaHttp.cc,v 1.11 2007-05-30 11:57:10 pixel Exp $ */
+/* $Id: LuaHttp.cc,v 1.12 2007-05-30 22:36:31 pixel Exp $ */
#include "Domain.h"
#include "LuaHttp.h"
@@ -205,7 +205,7 @@ int sLua_HttpResponse::HttpResponse_proceed(Lua * L, int n, HttpResponse * res,
class LuaDomain : public Domain {
public:
- LuaDomain(Lua * _L, String r) : Domain(r), L(_L) {
+ LuaDomain(Lua * _L, String r) : Domain(r), L(_L->Father()) {
id = max_id++;
L->push(DOMAIN_REGISTRY);