# HG changeset patch # User Kim Alvefur # Date 1356701607 -3600 # Node ID e8f7962056f50038cf2a21264808a0a5b14c214f # Parent f79be67e56661243c574daccb89e56746eae1c32 net.server_select: Add pause and resume methods diff -r f79be67e5666 -r e8f7962056f5 net/server_select.lua --- a/net/server_select.lua Fri Dec 28 14:32:22 2012 +0100 +++ b/net/server_select.lua Fri Dec 28 14:33:27 2012 +0100 @@ -197,6 +197,25 @@ --mem_free( ) out_put "server.lua: closed server handler and removed sockets from list" end + handler.pause = function() + if not handler.paused then + socket:close( ) + _sendlistlen = removesocket( _sendlist, socket, _sendlistlen ) + _readlistlen = removesocket( _readlist, socket, _readlistlen ) + _socketlist[ socket ] = nil + socket = nil; + handler.paused = true; + end + end + handler.resume = function() + if handler.paused then + socket = socket_bind( ip, serverport ); + socket:settimeout( 0 ) + _readlistlen = addsocket(_readlist, socket, _readlistlen) + _socketlist[ socket ] = handler + handler.paused = false; + end + end handler.ip = function( ) return ip end