From: Kim Alvefur Date: Fri, 8 Jul 2016 20:01:10 +0000 (+0200) Subject: Merge 0.10->trunk X-Git-Url: https://git.enpas.org/?p=prosody.git;a=commitdiff_plain;h=5f7b93067521c3dea61262bf8fcfc704f5e19a3f Merge 0.10->trunk --- 5f7b93067521c3dea61262bf8fcfc704f5e19a3f diff --cc net/server_select.lua index 37d57d29,85730e73..f70f81d0 --- a/net/server_select.lua +++ b/net/server_select.lua @@@ -894,17 -861,10 +894,17 @@@ en loop = function(once) -- this is the main loop of the program if quitting then return "quitting"; end if once then quitting = "once"; end - local next_timer_time = math_huge; + _currenttime = luasocket_gettime( ) repeat + -- Fire timers + local next_timer_time = math_huge; + for i = 1, _timerlistlen do + local t = _timerlist[ i ]( _currenttime ) -- fire timers + if t then next_timer_time = math_min(next_timer_time, t); end + end + local read, write, err = socket_select( _readlist, _sendlist, math_min(_selecttimeout, next_timer_time) ) - for i, socket in ipairs( write ) do -- send data waiting in writequeues + for _, socket in ipairs( write ) do -- send data waiting in writequeues local handler = _socketlist[ socket ] if handler then handler.sendbuffer( )