提交 3aa49aa5 编写于 作者: M Matt Bierner

Improve method names

上级 d6b6c51b
......@@ -11,7 +11,7 @@ suite('RequestQueue', () => {
test('should be empty on creation', async () => {
const queue = new RequestQueue();
assert.strictEqual(queue.length, 0);
assert.strictEqual(queue.shift(), undefined);
assert.strictEqual(queue.dequeue(), undefined);
});
suite('RequestQueue.createRequest', () => {
......@@ -33,25 +33,25 @@ suite('RequestQueue', () => {
assert.strictEqual(queue.length, 0);
const request1 = queue.createRequest('a', 1);
queue.push({ request: request1, expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.Normal });
queue.enqueue({ request: request1, expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.Normal });
assert.strictEqual(queue.length, 1);
const request2 = queue.createRequest('b', 2);
queue.push({ request: request2, expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.Normal });
queue.enqueue({ request: request2, expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.Normal });
assert.strictEqual(queue.length, 2);
{
const item = queue.shift();
const item = queue.dequeue();
assert.strictEqual(queue.length, 1);
assert.strictEqual(item!.request.command, 'a');
}
{
const item = queue.shift();
const item = queue.dequeue();
assert.strictEqual(queue.length, 0);
assert.strictEqual(item!.request.command, 'b');
}
{
const item = queue.shift();
const item = queue.dequeue();
assert.strictEqual(item, undefined);
assert.strictEqual(queue.length, 0);
}
......@@ -61,28 +61,28 @@ suite('RequestQueue', () => {
const queue = new RequestQueue();
assert.strictEqual(queue.length, 0);
queue.push({ request: queue.createRequest('low-1', 1), expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.LowPriority });
queue.push({ request: queue.createRequest('low-2', 1), expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.LowPriority });
queue.push({ request: queue.createRequest('normal-1', 2), expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.Normal });
queue.push({ request: queue.createRequest('normal-2', 2), expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.Normal });
queue.enqueue({ request: queue.createRequest('low-1', 1), expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.LowPriority });
queue.enqueue({ request: queue.createRequest('low-2', 1), expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.LowPriority });
queue.enqueue({ request: queue.createRequest('normal-1', 2), expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.Normal });
queue.enqueue({ request: queue.createRequest('normal-2', 2), expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.Normal });
{
const item = queue.shift();
const item = queue.dequeue();
assert.strictEqual(queue.length, 3);
assert.strictEqual(item!.request.command, 'normal-1');
}
{
const item = queue.shift();
const item = queue.dequeue();
assert.strictEqual(queue.length, 2);
assert.strictEqual(item!.request.command, 'normal-2');
}
{
const item = queue.shift();
const item = queue.dequeue();
assert.strictEqual(queue.length, 1);
assert.strictEqual(item!.request.command, 'low-1');
}
{
const item = queue.shift();
const item = queue.dequeue();
assert.strictEqual(queue.length, 0);
assert.strictEqual(item!.request.command, 'low-2');
}
......@@ -92,28 +92,28 @@ suite('RequestQueue', () => {
const queue = new RequestQueue();
assert.strictEqual(queue.length, 0);
queue.push({ request: queue.createRequest('low-1', 0), expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.LowPriority });
queue.push({ request: queue.createRequest('fence', 0), expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.Fence });
queue.push({ request: queue.createRequest('low-2', 0), expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.LowPriority });
queue.push({ request: queue.createRequest('normal', 0), expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.Normal });
queue.enqueue({ request: queue.createRequest('low-1', 0), expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.LowPriority });
queue.enqueue({ request: queue.createRequest('fence', 0), expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.Fence });
queue.enqueue({ request: queue.createRequest('low-2', 0), expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.LowPriority });
queue.enqueue({ request: queue.createRequest('normal', 0), expectsResponse: true, isAsync: false, queueingType: RequestQueueingType.Normal });
{
const item = queue.shift();
const item = queue.dequeue();
assert.strictEqual(queue.length, 3);
assert.strictEqual(item!.request.command, 'low-1');
}
{
const item = queue.shift();
const item = queue.dequeue();
assert.strictEqual(queue.length, 2);
assert.strictEqual(item!.request.command, 'fence');
}
{
const item = queue.shift();
const item = queue.dequeue();
assert.strictEqual(queue.length, 1);
assert.strictEqual(item!.request.command, 'normal');
}
{
const item = queue.shift();
const item = queue.dequeue();
assert.strictEqual(queue.length, 0);
assert.strictEqual(item!.request.command, 'low-2');
}
......
......@@ -19,7 +19,7 @@ export enum RequestQueueingType {
/**
* A fence that blocks request reordering.
*
* Fences are not reordered but unlike a normal request, a fence will never jump in front of a low priority request
* Fences are not reordered. Unlike a normal request, a fence will never jump in front of a low priority request
* in the request queue.
*/
Fence = 3,
......@@ -40,7 +40,7 @@ export class RequestQueue {
return this.queue.length;
}
public push(item: RequestItem): void {
public enqueue(item: RequestItem): void {
if (item.queueingType === RequestQueueingType.Normal) {
let index = this.queue.length - 1;
while (index >= 0) {
......@@ -51,16 +51,16 @@ export class RequestQueue {
}
this.queue.splice(index + 1, 0, item);
} else {
//if none is low priority just push to end
// Only normal priority requests can be reordered. All other requests just go to the end.
this.queue.push(item);
}
}
public shift(): RequestItem | undefined {
public dequeue(): RequestItem | undefined {
return this.queue.shift();
}
public tryCancelPendingRequest(seq: number): boolean {
public tryDeletePendingRequest(seq: number): boolean {
for (let i = 0; i < this.queue.length; i++) {
if (this.queue[i].request.seq === seq) {
this.queue.splice(i, 1);
......
......@@ -253,7 +253,7 @@ export class TypeScriptServer extends Disposable {
private tryCancelRequest(seq: number, command: string): boolean {
try {
if (this._requestQueue.tryCancelPendingRequest(seq)) {
if (this._requestQueue.tryDeletePendingRequest(seq)) {
this._tracer.logTrace(`TypeScript Server: canceled request with sequence number ${seq}`);
return true;
}
......@@ -337,7 +337,7 @@ export class TypeScriptServer extends Disposable {
} else {
result = Promise.resolve(null);
}
this._requestQueue.push(requestInfo);
this._requestQueue.enqueue(requestInfo);
this.sendNextRequests();
return result;
......@@ -369,7 +369,7 @@ export class TypeScriptServer extends Disposable {
private sendNextRequests(): void {
while (this._pendingResponses.size === 0 && this._requestQueue.length > 0) {
const item = this._requestQueue.shift();
const item = this._requestQueue.dequeue();
if (item) {
this.sendRequest(item);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册