mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-24 10:38:59 +01:00
Use more explit name for request start time
Note that this is the total time the request has been in the server queue, not the actual execution time
This commit is contained in:
@@ -9,7 +9,7 @@ import { ServerResponse } from '../typescriptService';
|
||||
export interface CallbackItem<R> {
|
||||
readonly onSuccess: (value: R) => void;
|
||||
readonly onError: (err: Error) => void;
|
||||
readonly startTime: number;
|
||||
readonly queuingStartTime: number;
|
||||
readonly isAsync: boolean;
|
||||
}
|
||||
|
||||
@@ -48,4 +48,4 @@ export class CallbackMap<R extends Proto.Response> {
|
||||
this._asyncCallbacks.delete(seq);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,10 +140,10 @@ export class ProcessBasedTsServer extends Disposable implements ITypeScriptServe
|
||||
const event = message as Proto.Event;
|
||||
if (event.event === 'requestCompleted') {
|
||||
const seq = (event as Proto.RequestCompletedEvent).body.request_seq;
|
||||
const p = this._callbacks.fetch(seq);
|
||||
if (p) {
|
||||
this._tracer.traceRequestCompleted(this._serverId, 'requestCompleted', seq, p.startTime);
|
||||
p.onSuccess(undefined);
|
||||
const callback = this._callbacks.fetch(seq);
|
||||
if (callback) {
|
||||
this._tracer.traceRequestCompleted(this._serverId, 'requestCompleted', seq, callback);
|
||||
callback.onSuccess(undefined);
|
||||
}
|
||||
} else {
|
||||
this._tracer.traceEvent(this._serverId, event);
|
||||
@@ -186,7 +186,7 @@ export class ProcessBasedTsServer extends Disposable implements ITypeScriptServe
|
||||
return;
|
||||
}
|
||||
|
||||
this._tracer.traceResponse(this._serverId, response, callback.startTime);
|
||||
this._tracer.traceResponse(this._serverId, response, callback);
|
||||
if (response.success) {
|
||||
callback.onSuccess(response);
|
||||
} else if (response.message === 'No content available.') {
|
||||
@@ -210,7 +210,7 @@ export class ProcessBasedTsServer extends Disposable implements ITypeScriptServe
|
||||
let result: Promise<ServerResponse.Response<Proto.Response>> | undefined;
|
||||
if (executeInfo.expectsResult) {
|
||||
result = new Promise<ServerResponse.Response<Proto.Response>>((resolve, reject) => {
|
||||
this._callbacks.add(request.seq, { onSuccess: resolve, onError: reject, startTime: Date.now(), isAsync: executeInfo.isAsync }, executeInfo.isAsync);
|
||||
this._callbacks.add(request.seq, { onSuccess: resolve, onError: reject, queuingStartTime: Date.now(), isAsync: executeInfo.isAsync }, executeInfo.isAsync);
|
||||
|
||||
if (executeInfo.token) {
|
||||
executeInfo.token.onCancellationRequested(() => {
|
||||
|
||||
@@ -714,7 +714,10 @@ export default class TypeScriptServiceClient extends Disposable implements IType
|
||||
return this.bufferSyncSupport.interuptGetErr(f);
|
||||
}
|
||||
|
||||
private fatalError(command: string, error: Error): void {
|
||||
private fatalError(command: string, error: unknown): void {
|
||||
if (!(error instanceof TypeScriptServerError)) {
|
||||
console.log('fdasfasdf');
|
||||
}
|
||||
/* __GDPR__
|
||||
"fatalError" : {
|
||||
"${include}": [
|
||||
|
||||
@@ -29,6 +29,10 @@ namespace Trace {
|
||||
}
|
||||
}
|
||||
|
||||
interface RequestExecutionMetadata {
|
||||
readonly queuingStartTime: number
|
||||
}
|
||||
|
||||
export default class Tracer {
|
||||
private trace?: Trace;
|
||||
|
||||
@@ -61,7 +65,7 @@ export default class Tracer {
|
||||
this.logTrace(serverId, `Sending request: ${request.command} (${request.seq}). Response expected: ${responseExpected ? 'yes' : 'no'}. Current queue length: ${queueLength}`, data);
|
||||
}
|
||||
|
||||
public traceResponse(serverId: string, response: Proto.Response, startTime: number): void {
|
||||
public traceResponse(serverId: string, response: Proto.Response, meta: RequestExecutionMetadata): void {
|
||||
if (this.trace === Trace.Off) {
|
||||
return;
|
||||
}
|
||||
@@ -69,14 +73,14 @@ export default class Tracer {
|
||||
if (this.trace === Trace.Verbose && response.body) {
|
||||
data = `Result: ${JSON.stringify(response.body, null, 4)}`;
|
||||
}
|
||||
this.logTrace(serverId, `Response received: ${response.command} (${response.request_seq}). Request took ${Date.now() - startTime} ms. Success: ${response.success} ${!response.success ? '. Message: ' + response.message : ''}`, data);
|
||||
this.logTrace(serverId, `Response received: ${response.command} (${response.request_seq}). Request took ${Date.now() - meta.queuingStartTime} ms. Success: ${response.success} ${!response.success ? '. Message: ' + response.message : ''}`, data);
|
||||
}
|
||||
|
||||
public traceRequestCompleted(serverId: string, command: string, request_seq: number, startTime: number): any {
|
||||
public traceRequestCompleted(serverId: string, command: string, request_seq: number, meta: RequestExecutionMetadata): any {
|
||||
if (this.trace === Trace.Off) {
|
||||
return;
|
||||
}
|
||||
this.logTrace(serverId, `Async response received: ${command} (${request_seq}). Request took ${Date.now() - startTime} ms.`);
|
||||
this.logTrace(serverId, `Async response received: ${command} (${request_seq}). Request took ${Date.now() - meta.queuingStartTime} ms.`);
|
||||
}
|
||||
|
||||
public traceEvent(serverId: string, event: Proto.Event): void {
|
||||
@@ -95,4 +99,4 @@ export default class Tracer {
|
||||
this.logger.logLevel('Trace', `<${serverId}> ${message}`, data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user