net.server: Add server.setquitting() to gracefully quit the socket loop

Sun, 12 Apr 2009 02:54:45 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Sun, 12 Apr 2009 02:54:45 +0100
changeset 989
ec239c044f31
parent 988
8cb9a0d59e78
child 990
235abebc896e

net.server: Add server.setquitting() to gracefully quit the socket loop

net/server.lua file | annotate | diff | comparison | revisions
--- a/net/server.lua	Sun Apr 12 02:53:50 2009 +0100
+++ b/net/server.lua	Sun Apr 12 02:54:45 2009 +0100
@@ -724,8 +724,16 @@
     return _readtraffic, _sendtraffic, _readlistlen, _sendlistlen, _timerlistlen
 end
 
+local dontstop = true;
+
+setquitting = function (quit)
+	dontstop = not quit;
+	return;
+end
+
 loop = function( )    -- this is the main loop of the program
-    while true do
+    while dontstop do
+        out_put(tostring(dontstop))
         local read, write, err = socket_select( _readlist, _sendlist, _selecttimeout )
         for i, socket in ipairs( write ) do    -- send data waiting in writequeues
             local handler = _socketlist[ socket ]
@@ -760,6 +768,7 @@
         socket_sleep( _sleeptime )    -- wait some time
         --collectgarbage( )
     end
+    return "quitting"
 end
 
 --// EXPERIMENTAL //--
@@ -833,7 +842,7 @@
     addtimer = addtimer,
     addserver = addserver,
     getsettings = getsettings,
+    setquitting = setquitting,
     removeserver = removeserver,
     changesettings = changesettings,
-
 }

mercurial