2012-05-09 13 views
5

Lua Lanesを使用して、マルチスレッドを行い、時間を記録したかったのです。ここでは、コードは次のとおりです。私は、コードを実行するとルアレーンズ:グローバル 'os'(ゼロ値)のインデックスを作成しよう

require "lanes" 

function performTest() 
    os.execute("testJson-mt.lua") 
end 

for i=1,10,1 do 
    f= lanes.gen(performTest) 
    a=f() 
    startTime = os.time() 
    print("ID "..a[1].." completed.") 
    endTime = os.time() 
    diff = os.difftime (endTime, startTime) 
    print(i..","..os.date("%x %X",startTime)..","..os.date("%x %X",endTime)..","..startTime..","..endTime..","..diff) 
end 

しかし、コンソールはエラーを返します:lua: testLanes.lua:4: attempt to index global 'os' (a nil value)

このエラーコードはこの行を指しています。です。私はこのエラーをあまり理解していません。お知らせ下さい。

注:私はLua for WindowsをIDEとして使用しています。

答えて

7

デフォルトではlanes.gen loads no librariesで、基本ライブラリでもありません。したがって'*'を最初のパラメータとしてlanes.genに渡して、osと他のモジュールをレーンに追加します。

+0

私はそれを試しました。できます。ありがとう! – ktlim

+2

あなたが解決したときに役立つ答えをマークすることは素晴らしいでしょう;) –

+0

"*"は過剰なライブラリをすべて読み込みます。lanes.genの最初のパラメータとして "os"を使うことができます。 – Stomp

1

また、require "os"とすることもできます。

+1

このrequireの呼び出しは、基本状態ではなく各レーンで実行されるように、関数 'performTest()'の中になければならないことに注意してください。 – RBerteig

関連する問題