2012-05-09 11 views
5

Quería usar Lua Lanes para hacer un multihilo y registrar el tiempo tomado. Aquí está el código:Lua Lanes: intentar indexar 'os' globales (un valor nulo)

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 

Sin embargo, cuando ejecuto el código, la consola devuelve un error: lua: testLanes.lua:4: attempt to index global 'os' (a nil value).

Este código de error apunta a esta línea donde os.execute("testJson-mt.lua"). No entiendo muy bien este error. Por favor avise.

Nota: Estoy usando Lua for Windows como IDE.

Respuesta

7

De forma predeterminada, lanes.gen loads no libraries, ni siquiera las bibliotecas base. Por lo tanto, pase '*' como primer parámetro a lanes.gen para obtener el os y otros módulos en el carril.

+0

Lo he intentado. Funciona. ¡Gracias! – ktlim

+2

Marcar una respuesta que le ayudó a resolverlo sería genial;) –

+0

"*" carga todas las bibliotecas que son exageradas, puede usar "os" como primer parámetro para lanes.gen – Stomp

1

También podría hacer require "os".

+1

Tenga en cuenta que esta llamada a requerir tendría que estar dentro de la función 'performTest()' para que se ejecute en cada carril en lugar de en el estado base. – RBerteig

Cuestiones relacionadas