2010-12-11から1日間の記事一覧

Lua処理系コード読み(13) luaL_newstate

luaL_newstateは先のlua_newstateにLuaが提供するシンプルなアロケータ(とエラー発生時呼び出す関数)を指定して呼び出す関数。 LUALIB_API lua_State *luaL_newstate (void) { lua_State *L = lua_newstate(l_alloc, NULL); if (L) lua_atpanic(L, &panic)…

Lua処理系コード読み(12) lua_newstate

lua_newstateは一個のlua_Stateとglobal_Stateからなるメインスレッド(ネイティブスレッドではなくいわゆるグリーンスレッド)を初期化する関数。基本的には領域とってきて値を設定してるだけです。 LUA_API lua_State *lua_newstate (lua_Alloc f, void *u…

Lua処理系コード読み(11) global_State

Lua VM一個にglobal_Stateが一個。VMが保持しておくべきアロケータへのポインタとかGCの状態とかを保持しておく。全てのlua_Stateはこのglobal_Stateへの参照を保持する。 /* ** `global state', shared by all threads of this state */ typedef struct glo…

test