Software /
code /
prosody
Comparison
net/server.lua @ 989:ec239c044f31
net.server: Add server.setquitting() to gracefully quit the socket loop
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sun, 12 Apr 2009 02:54:45 +0100 |
parent | 962:872f5d85636e |
child | 994:8fd4efc3ed96 |
comparison
equal
deleted
inserted
replaced
988:8cb9a0d59e78 | 989:ec239c044f31 |
---|---|
722 | 722 |
723 stats = function( ) | 723 stats = function( ) |
724 return _readtraffic, _sendtraffic, _readlistlen, _sendlistlen, _timerlistlen | 724 return _readtraffic, _sendtraffic, _readlistlen, _sendlistlen, _timerlistlen |
725 end | 725 end |
726 | 726 |
727 local dontstop = true; | |
728 | |
729 setquitting = function (quit) | |
730 dontstop = not quit; | |
731 return; | |
732 end | |
733 | |
727 loop = function( ) -- this is the main loop of the program | 734 loop = function( ) -- this is the main loop of the program |
728 while true do | 735 while dontstop do |
736 out_put(tostring(dontstop)) | |
729 local read, write, err = socket_select( _readlist, _sendlist, _selecttimeout ) | 737 local read, write, err = socket_select( _readlist, _sendlist, _selecttimeout ) |
730 for i, socket in ipairs( write ) do -- send data waiting in writequeues | 738 for i, socket in ipairs( write ) do -- send data waiting in writequeues |
731 local handler = _socketlist[ socket ] | 739 local handler = _socketlist[ socket ] |
732 if handler then | 740 if handler then |
733 handler.sendbuffer( ) | 741 handler.sendbuffer( ) |
758 _timer = _currenttime | 766 _timer = _currenttime |
759 end | 767 end |
760 socket_sleep( _sleeptime ) -- wait some time | 768 socket_sleep( _sleeptime ) -- wait some time |
761 --collectgarbage( ) | 769 --collectgarbage( ) |
762 end | 770 end |
771 return "quitting" | |
763 end | 772 end |
764 | 773 |
765 --// EXPERIMENTAL //-- | 774 --// EXPERIMENTAL //-- |
766 | 775 |
767 local wrapclient = function( socket, ip, serverport, listeners, pattern, sslctx, startssl ) | 776 local wrapclient = function( socket, ip, serverport, listeners, pattern, sslctx, startssl ) |
831 stats = stats, | 840 stats = stats, |
832 closeall = closeall, | 841 closeall = closeall, |
833 addtimer = addtimer, | 842 addtimer = addtimer, |
834 addserver = addserver, | 843 addserver = addserver, |
835 getsettings = getsettings, | 844 getsettings = getsettings, |
845 setquitting = setquitting, | |
836 removeserver = removeserver, | 846 removeserver = removeserver, |
837 changesettings = changesettings, | 847 changesettings = changesettings, |
838 | |
839 } | 848 } |