From 2f0156d73981f879bbd25197174545d26b7232d2 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sun, 27 Dec 2009 21:57:43 +0000 Subject: improved error handling --- src/main_loop.lua | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/main_loop.lua b/src/main_loop.lua index 8f69f47..dd1289b 100644 --- a/src/main_loop.lua +++ b/src/main_loop.lua @@ -36,21 +36,27 @@ function main_loop(opt) sock[2] = echo_server_init("localhost", 10000) if(sock[2] == nil) then return -1 end - local ret = 0 - while ret == 0 do + local return_value = 0 + while return_value == 0 do local readable, _, err = socket.select({ sig , sock[1], sock[2] }, nil) - for _, input in ipairs(readable) do - if(input == sig) then - ret = signal.handle() - if(ret == 1) then break end - else - ret = echo_server_recv(input) + if(err) then + log.printf("ERROR", "select returned with error: %s", err) + return_value = -1 + else + for _, input in ipairs(readable) do + if(input == sig) then + return_value = signal.handle() + if(return_value == 1) then break end + else + return_value = echo_server_recv(input) + if(return_value == 2) then break end + end end end end - if(ret == 2) then ret = 0 end + if(return_value == 2) then return_value = 0 end signal.stop() - return ret + return return_value end -- cgit v1.2.3