[Freeswitch-users] Lua: io.popen/read blocking in other incoming calls

Dan freeswitch-users at digitaldan.com
Tue Jan 19 13:03:05 PST 2010


My lua script is calling wget through lua's io.popen to send and receive data from a web service. While the f:read to wget is running, other incoming calls will block on the same io.popen call until the first call closes the pipe (with f:close()). 


I had assumed every incoming call was on its own thread and that each had its own lua instance. Is there a global lock happening here? Below is the runCommand call and the two start and stop methods that are getting called in my script when the call begins and ends (notice they even talk to different hosts, so its not the web server hanging). I have put in debugging statements and its definitely hanging trying to call io.popen and not on the f:read. I noticed on the mod_python page (http://wiki.freeswitch.org/wiki/Mod_python#Known_Bugs) that it had read issues that were fixed in 12958 , could this be related? I'm on svn trunk version 16272 on 32bit debian etch. 


Thanks, 
Dan- 
function runCommand(command)
    local f = io.popen(command) -- runs command
    local l = f:read("*a") -- read output of command
    f:close()
    return l
end function notifyStart(id)
    local url = "http://host1/start?id=" .. id
    
    local wget = "/usr/bin/wget " .. url local out = runCommand(wget) return out; end 
function notifyStop(id)
    local url = "http://host2/start?id=" .. id
    
    local wget = "/usr/bin/wget " .. url local out = runCommand(wget) return out; end 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20100119/8245b8ed/attachment-0002.html 


More information about the FreeSWITCH-users mailing list