Skip to content

Commit 73125fd

Browse files
committed
debt - used linkedlist for emitter delivery queue
1 parent d356e5b commit 73125fd

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

src/vs/base/common/event.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,7 @@ export class Emitter<T> {
488488
private readonly _leakageMon?: LeakageMonitor;
489489
private _disposed: boolean = false;
490490
private _event?: Event<T>;
491-
private _deliveryQueue: [Listener<T>, T][];
491+
private _deliveryQueue?: LinkedList<[Listener<T>, T]>;
492492
protected _listeners?: LinkedList<Listener<T>>;
493493

494494
constructor(options?: EmitterOptions) {
@@ -570,14 +570,14 @@ export class Emitter<T> {
570570
// the driver of this
571571

572572
if (!this._deliveryQueue) {
573-
this._deliveryQueue = [];
573+
this._deliveryQueue = new LinkedList();
574574
}
575575

576576
for (let iter = this._listeners.iterator(), e = iter.next(); !e.done; e = iter.next()) {
577577
this._deliveryQueue.push([e.value, event]);
578578
}
579579

580-
while (this._deliveryQueue.length > 0) {
580+
while (this._deliveryQueue.size > 0) {
581581
const [listener, event] = this._deliveryQueue.shift()!;
582582
try {
583583
if (typeof listener === 'function') {
@@ -594,10 +594,10 @@ export class Emitter<T> {
594594

595595
dispose() {
596596
if (this._listeners) {
597-
this._listeners = undefined;
597+
this._listeners.clear();
598598
}
599599
if (this._deliveryQueue) {
600-
this._deliveryQueue.length = 0;
600+
this._deliveryQueue.clear();
601601
}
602602
if (this._leakageMon) {
603603
this._leakageMon.dispose();

0 commit comments

Comments
 (0)