diff options
Diffstat (limited to 'src/main_loop.lua')
-rw-r--r-- | src/main_loop.lua | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/main_loop.lua b/src/main_loop.lua index 46cb0b1..e92c9b7 100644 --- a/src/main_loop.lua +++ b/src/main_loop.lua @@ -110,30 +110,32 @@ function main_loop(opt) if(return_value == 1) then break end else local ret = reader:read() - if(ret == defines.KILL_DAEMON) then - return_value = 2 - break - elseif(ret == defines.KILL_MODULE_CLASS) then - module_list:unregister_by_class(reader.client_instance.module_instance.class) + if(ret == defines.KILL_MODULE_CLASS) then + ret = module_list:unregister_by_class(reader.client_instance.module_instance.class) elseif(ret == defines.KILL_MODULE) then - module_list:unregister(reader.client_instance.module_instance) + ret = module_list:unregister(reader.client_instance.module_instance) elseif(ret == defines.KILL_CLIENT) then client_list:unregister(reader.client_instance) end + if(ret == defines.KILL_DAEMON) then + return_value = 2 + break + end end end for _, writer in ipairs(writeable) do ret = writer:write() - if(ret == defines.KILL_DAEMON) then - return_value = 2 - break - elseif(ret == defines.KILL_MODULE_CLASS) then - module_list:unregister_by_class(writer.client_instance.module_instance.class) + if(ret == defines.KILL_MODULE_CLASS) then + ret = module_list:unregister_by_class(writer.client_instance.module_instance.class) elseif(ret == defines.KILL_MODULE) then - module_list:unregister(writer.client_instance.module_instance) + ret = module_list:unregister(writer.client_instance.module_instance) elseif(ret == defines.KILL_CLIENT) then client_list:unregister(writer.client_instance) end + if(ret == defines.KILL_DAEMON) then + return_value = 2 + break + end end end command_queue:check_timeout() |