Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Auto merge of #2245 - micbou:shutdown, r=puremourning
[READY] Implement shutdown handler This PR depends on ycm-core/ycmd#282. We don't want to block Vim exit if the server takes too much time to answer the shutdown request so we use a timeout of 100ms for this request. In my experience, it takes ~5ms. The `YcmStopServer` command only exists for testing purpose. It will be removed in the final version of this PR. Fixes #876. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2245) <!-- Reviewable:end -->
- Loading branch information
Showing
9 changed files
with
259 additions
and
165 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# Copyright (C) 2016 YouCompleteMe contributors | ||
# | ||
# 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/>. | ||
|
||
from __future__ import unicode_literals | ||
from __future__ import print_function | ||
from __future__ import division | ||
from __future__ import absolute_import | ||
from future import standard_library | ||
standard_library.install_aliases() | ||
from builtins import * # noqa | ||
|
||
from requests.exceptions import ReadTimeout | ||
|
||
from ycm.client.base_request import BaseRequest | ||
|
||
TIMEOUT_SECONDS = 0.1 | ||
|
||
|
||
class ShutdownRequest( BaseRequest ): | ||
def __init__( self ): | ||
super( BaseRequest, self ).__init__() | ||
|
||
|
||
def Start( self ): | ||
try: | ||
self.PostDataToHandler( {}, | ||
'shutdown', | ||
TIMEOUT_SECONDS ) | ||
except ReadTimeout: | ||
pass | ||
|
||
|
||
def Response( self ): | ||
return self._response | ||
|
||
|
||
def SendShutdownRequest(): | ||
request = ShutdownRequest() | ||
# This is a blocking call. | ||
request.Start() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.