Comparison

net/server_select.lua @ 5632:8a2456f1f117

net.server_select: Support for listener.onreadtimeout() [see also e67891ad18d6]
author Matthew Wild <mwild1@gmail.com>
date Fri, 24 May 2013 18:14:09 +0100
parent 5548:c5d1c35c93f4
child 5633:d999027577ed
comparison
equal deleted inserted replaced
5631:78bc91f0d74b 5632:8a2456f1f117
859 local difftime = os_difftime( _currenttime - _starttime ) 859 local difftime = os_difftime( _currenttime - _starttime )
860 if difftime > _checkinterval then 860 if difftime > _checkinterval then
861 _starttime = _currenttime 861 _starttime = _currenttime
862 for handler, timestamp in pairs( _writetimes ) do 862 for handler, timestamp in pairs( _writetimes ) do
863 if os_difftime( _currenttime - timestamp ) > _sendtimeout then 863 if os_difftime( _currenttime - timestamp ) > _sendtimeout then
864 --_writetimes[ handler ] = nil
865 handler.disconnect( )( handler, "send timeout" ) 864 handler.disconnect( )( handler, "send timeout" )
866 handler:force_close() -- forced disconnect 865 handler:force_close() -- forced disconnect
867 end 866 end
868 end 867 end
869 for handler, timestamp in pairs( _readtimes ) do 868 for handler, timestamp in pairs( _readtimes ) do
870 if os_difftime( _currenttime - timestamp ) > _readtimeout then 869 if os_difftime( _currenttime - timestamp ) > _readtimeout then
871 --_readtimes[ handler ] = nil 870 if not(handler.onreadtimeout) or handler:onreadtimeout() ~= true then
872 handler.disconnect( )( handler, "read timeout" ) 871 handler.disconnect( )( handler, "read timeout" )
873 handler:close( ) -- forced disconnect? 872 handler:close( ) -- forced disconnect?
873 end
874 end 874 end
875 end 875 end
876 end 876 end
877 877
878 -- Fire timers 878 -- Fire timers