I am wanting to code an inbound event program.

In order to see why I am getting zombie processes I stripped out all my code and used the minimum skeletcon code to do a test.

con = ESL::ESLconnection.new('127.0.0.1', '8021', 'ClueCon')
con.events("plain", "CHANNEL_HANGUP_COMPLETE")

loop do
event = con.recvEvent
pid = fork do

end

Process.detach(pid)
end


This code does nothing but wait for an incoming event, creates an fork then detach however it still produces a defunct process.

I think con.recvEvent is the cause?