コード例 #1
0
ファイル: LuaPlus.cpp プロジェクト: brock7/TianLong
LuaState::LuaState(bool initStandardLibrary, bool multithreaded)
{
	m_state = lua_open();
	m_ownState = true;

	lua_setusergcfunction(m_state, LuaPlusGCFunction);

	SetupStateEx();

	GetHeadObject()->m_prev = NULL;
	GetHeadObject()->m_next = GetTailObject();
	GetTailObject()->m_prev = GetHeadObject();
	GetTailObject()->m_next = NULL;

#ifdef LUA_MTSUPPORT
	if (multithreaded)
	{
#ifdef WIN32
		// What about clean up?
		CRITICAL_SECTION* cs = new CRITICAL_SECTION;
		::InitializeCriticalSection(cs);
		lua_setlockfunctions(m_state, LSLock, LSUnlock, cs);
#endif WIN32
	}
#endif LUA_MTSUPPORT
	
	Init(initStandardLibrary);
}
コード例 #2
0
LuaState::LuaState(bool initStandardLibrary, bool multithreaded)
{
	m_state = lua_newstate(luaHelper_defaultAlloc, luaHelper_ud);
	m_ownState = true;

	lua_setusergcfunction(m_state, LuaPlusGCFunction);
//jj    luaX_setnewthreadhandler( newthread_handler );
//jj    luaX_setfreethreadhandler( freethread_handler );

	SetupStateEx();

	GetHeadObject()->m_prev = NULL;
	GetHeadObject()->m_next = (LuaObject*)GetTailObject();
	GetTailObject()->m_prev = (LuaObject*)GetHeadObject();
	GetTailObject()->m_next = NULL;

#ifdef LUA_MTSUPPORT
	if (multithreaded)
	{
/*#ifdef WIN32
		// What about clean up?
		CRITICAL_SECTION* cs = new CRITICAL_SECTION;
		::InitializeCriticalSection(cs);
		lua_setlockfunctions(m_state, LSLock, LSUnlock, cs);
#endif // WIN32*/
	}
#endif // LUA_MTSUPPORT

//    luastateopen_thread(m_state);

    Init(initStandardLibrary);
}
コード例 #3
0
ファイル: LuaPlus.cpp プロジェクト: brock7/TianLong
LuaState::LuaState( lua_State* state )
{
	m_state = state;

	m_ownState = false;

	SetupStateEx();
}
コード例 #4
0
LuaState::LuaState(lua_State* L, lua_State* L1)
{
	m_state = L1;

	m_ownState = false;

    GetHeadObject()->m_prev = NULL;
	GetHeadObject()->m_next = (LuaObject*)GetTailObject();
	GetTailObject()->m_prev = (LuaObject*)GetHeadObject();
	GetTailObject()->m_next = NULL;

    SetupStateEx();
}
コード例 #5
0
ファイル: LuaPlus.cpp プロジェクト: brock7/TianLong
LuaState::LuaState(LuaState* parentState, bool initStandardLibrary)
{
	m_state = lua_newthread(*parentState);
	m_ownState = false;			// Threads are not closeable.

	GetHeadObject()->m_prev = NULL;
	GetHeadObject()->m_next = GetTailObject();
	GetTailObject()->m_prev = GetHeadObject();
	GetTailObject()->m_next = NULL;

	m_threadObj = LuaStackObject(parentState, parentState->GetTop());
	parentState->Pop();

	SetupStateEx();
}
コード例 #6
0
LuaState::LuaState( lua_State* state )
{
	m_state = state;

	m_ownState = false;

//jj    luaX_setnewthreadhandler( newthread_handler );
//jj    luaX_setfreethreadhandler( freethread_handler );

    GetHeadObject()->m_prev = NULL;
	GetHeadObject()->m_next = (LuaObject*)GetTailObject();
	GetTailObject()->m_prev = (LuaObject*)GetHeadObject();
	GetTailObject()->m_next = NULL;

    SetupStateEx();

//    luastateopen_thread(m_state);
}