cf6211055e
This option existed so that the user can tweak it if they found the default idle timeout too short, for instance if they leave their machine on over the weekend. This use case is now covered by the new YcmdKeepalive system that pings ycmd every 10 minutes as long as Vim is running. This prevents ycmd shutting down if one leaves their Vim instance alone for a long time. Thus the old option is useless now; ycmd now shuts down after 3 hours of inactivity, which should only ever happen when its corresponding Vim instance has shut down abnormally.
49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
#!/usr/bin/env python
|
|
#
|
|
# Copyright (C) 2013 Strahinja Val Markovic <val@markovic.io>
|
|
#
|
|
# This file is part of YouCompleteMe.
|
|
#
|
|
# YouCompleteMe is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# YouCompleteMe is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with YouCompleteMe. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
import time
|
|
from threading import Thread
|
|
from ycm.client.base_request import BaseRequest
|
|
|
|
|
|
# This class can be used to keep the ycmd server alive for the duration of the
|
|
# life of the client. By default, ycmd shuts down if it doesn't see a request in
|
|
# a while.
|
|
class YcmdKeepalive( object ):
|
|
def __init__( self, ping_interval_seconds = 60 * 10 ):
|
|
self._keepalive_thread = Thread( target = self._ThreadMain )
|
|
self._keepalive_thread.daemon = True
|
|
self._ping_interval_seconds = ping_interval_seconds
|
|
|
|
|
|
def Start( self ):
|
|
self._keepalive_thread.start()
|
|
|
|
|
|
def _ThreadMain( self ):
|
|
while True:
|
|
time.sleep( self._ping_interval_seconds )
|
|
|
|
# We don't care if there's an intermittent problem in contacting the
|
|
# server; it's fine to just skip this ping.
|
|
try:
|
|
BaseRequest.GetDataFromHandler( 'healthy' )
|
|
except:
|
|
pass
|