lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Makoto Hamanaka wrote:
For example, everything works here on linux, and the effect of using a
step size argument is platform dependent, as the manual says. My guess
is that using step size 0 is too small for your runtime.
    
It is the result. The last call to collectgarbage("step",0) never returns.
I waited 40 minutes and it doesn't respond.

  
collectgarbage("setpause",100)
collectgarbage("setstepmul",2000)
collectgarbage("stop")
collectgarbage("step",0)
    
Same results here on Gentoo (5.1.1 compiled from source), and Windows with 5.1.3 from LuaBinaries.  However, Windows x64 5.1.3 LuaBinaries completes.


Then I changed the value and experimented.
Again, the last collectgarbage("step",10) doesn't return control 
to the prompt.


  
collectgarbage("setpause",100)
collectgarbage("setstepmul",2000)
collectgarbage("step",10)
    
Again, looks like the Windows x64 LuaBinaries returns fine, while Gentoo's 5.1.1 (32-bit) and 32-bit LuaBinaries 5.1.3 on Windows hang.

I'll see if I can find a 64-bit Linux system to test that as well.

I'm not sure if this is really a bug, as I'm not familiar with the internals of the garbage collection system and it does indeed say the behavior is 'non-specified', but I can say that I don't think Lua should ever enter an infinite loop.

--
Irayo