|
|
@@ -693,6 +693,14 @@ local function scheduler()
|
|
|
while true do
|
|
|
-- Resume all coroutines
|
|
|
for name, co in pairs(cos) do
|
|
|
+ if coroutine.status(co) == "dead" then
|
|
|
+ -- Recreate dead coroutines
|
|
|
+ if cfg.debug then log("debug", "Recreate " .. name) end
|
|
|
+ if name == "co_dhcp" then cos[name] = coroutine.create(co_dhcp)
|
|
|
+ elseif name == "co_wan" then cos[name] = coroutine.create(co_wan)
|
|
|
+ elseif name == "co_commands" then cos[name] = coroutine.create(co_commands)
|
|
|
+ elseif name == "co_connect" then cos[name] = coroutine.create(co_connect)
|
|
|
+ end
|
|
|
if coroutine.status(co) == "suspended" then
|
|
|
if cfg.debug then log("debug", "Resume " .. name) end
|
|
|
local _, delay = coroutine.resume(co)
|