Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(521)

Side by Side Diff: pkg/analysis_server/lib/src/analysis_manager.dart

Issue 185313002: restructure client api to use streams (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: address comments Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | pkg/analysis_server/lib/src/channel.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import 'dart:async'; 5 import 'dart:async';
6 import 'dart:convert'; 6 import 'dart:convert';
7 import 'dart:io'; 7 import 'dart:io';
8
8 import 'package:analysis_server/src/channel.dart'; 9 import 'package:analysis_server/src/channel.dart';
9 import 'package:analysis_server/src/domain_server.dart'; 10 import 'package:analysis_server/src/domain_server.dart';
10 import 'package:analysis_server/src/protocol.dart'; 11 import 'package:analysis_server/src/protocol.dart';
11 12
12 /** 13 /**
13 * [AnalysisManager] is used to launch and manage an analysis server 14 * [AnalysisManager] is used to launch and manage an analysis server
14 * running in a separate process using either the [start] or [connect] methods. 15 * running in a separate process using either the [start] or [connect] methods.
15 */ 16 */
16 class AnalysisManager { 17 class AnalysisManager {
17 // TODO dynamically allocate port and/or allow client to specify port 18 // TODO dynamically allocate port and/or allow client to specify port
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 111
111 /** 112 /**
112 * Stop the analysis server. 113 * Stop the analysis server.
113 * 114 *
114 * Returns `true` if the signal is successfully sent and process terminates. 115 * Returns `true` if the signal is successfully sent and process terminates.
115 * Otherwise there was no attached process or the signal could not be sent, 116 * Otherwise there was no attached process or the signal could not be sent,
116 * usually meaning that the process is already dead. 117 * usually meaning that the process is already dead.
117 */ 118 */
118 Future<bool> stop() { 119 Future<bool> stop() {
119 if (process == null) { 120 if (process == null) {
120 return new Future.value(false); 121 return channel.close().then((_) => false);
121 } 122 }
122 var request = new Request('0', ServerDomainHandler.SHUTDOWN_METHOD); 123 return channel
123 channel.sendRequest(request); 124 .sendRequest(new Request('0', ServerDomainHandler.SHUTDOWN_METHOD))
124 return process.exitCode 125 .timeout(new Duration(seconds: 2), onTimeout: () {
125 .timeout(new Duration(seconds: 10)) 126 print('Expected shutdown response');
126 .catchError((error) { 127 })
128 .then((Response response) {
129 channel.close();
130 return process.exitCode;
131 })
132 .timeout(new Duration(seconds: 2), onTimeout: () {
133 print('Expected server to shutdown');
127 process.kill(); 134 process.kill();
128 throw 'Expected server to shutdown';
129 }) 135 })
130 .then((result) { 136 .then((int result) {
131 if (result != 0) { 137 if (result != null && result != 0) {
132 exitCode = result; 138 exitCode = result;
133 } 139 }
134 return true; 140 return true;
135 }); 141 });
136 } 142 }
137
138 } 143 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analysis_server/lib/src/channel.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698