From 74d75ee51602403f6f4f94bdff919400de24a6cf Mon Sep 17 00:00:00 2001
From: Benoit Germain <bnt.germain@gmail.com>
Date: Fri, 4 Oct 2013 15:16:00 +0200
Subject: Reorder things a tiny weeny bit in lanes.core.configure()

---
 src/lanes.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

(limited to 'src/lanes.c')

diff --git a/src/lanes.c b/src/lanes.c
index f4427a4..7d4f9e7 100644
--- a/src/lanes.c
+++ b/src/lanes.c
@@ -2798,7 +2798,7 @@ LUAG_FUNC( configure)
 	}
 #endif // THREADAPI == THREADAPI_PTHREAD
 
-	// Create main module interface table
+	// Retrieve main module interface table
 	lua_pushvalue( L, lua_upvalueindex( 2));                               // ... M
 	// remove configure() (this function) from the module interface
 	lua_pushnil( L);                                                       // ... M nil
@@ -2807,7 +2807,12 @@ LUAG_FUNC( configure)
 	luaG_registerlibfuncs( L, lanes_functions);
 	STACK_MID( L, 1);
 
-	// metatable for threads
+	ASSERT_L( timer_deep != NULL); // initialized by init_once_LOCKED
+	luaG_push_proxy( L, linda_id, (DEEP_PRELUDE*) timer_deep);             // ... M timer_deep
+	lua_setfield( L, -2, "timer_gateway");                                 // ... M
+	STACK_MID( L, 1);
+
+	// prepare the metatable for threads
 	// contains keys: { __gc, __index, cached_error, cached_tostring, cancel, join }
 	//
 	lua_newtable( L);                                                      // ... M mt
@@ -2854,14 +2859,7 @@ LUAG_FUNC( configure)
 	// Lua 5.2 no longer has LUA_GLOBALSINDEX: we must push globals table on the stack
 	lua_pushglobaltable( L);                                               // ... M _G
 	populate_func_lookup_table( L, -1, NULL);
-	lua_pop( L, 1);                                                        // ... M
-
-	ASSERT_L( timer_deep != NULL);
-	// init_once_LOCKED initializes timer_deep, so we must do this after, of course
-	luaG_push_proxy( L, linda_id, (DEEP_PRELUDE*) timer_deep);             // ... M timer_deep
-	lua_setfield( L, -2, "timer_gateway");                                 // ... M
-
-	lua_pop( L, 1);                                                        // ...
+	lua_pop( L, 2);                                                        // ...
 	STACK_END( L, 0);
 	DEBUGSPEW_CODE( fprintf( stderr, INDENT_BEGIN "%p: lanes.configure() END\n" INDENT_END, L));
 	DEBUGSPEW_CODE( -- debugspew_indent_depth);
-- 
cgit v1.2.3-55-g6feb