summaryrefslogtreecommitdiff
path: root/cli/js/signals.ts
diff options
context:
space:
mode:
Diffstat (limited to 'cli/js/signals.ts')
-rw-r--r--cli/js/signals.ts41
1 files changed, 21 insertions, 20 deletions
diff --git a/cli/js/signals.ts b/cli/js/signals.ts
index 28bc271c4..e7fd8c04d 100644
--- a/cli/js/signals.ts
+++ b/cli/js/signals.ts
@@ -34,7 +34,7 @@ enum LinuxSignal {
SIGWINCH = 28,
SIGIO = 29,
SIGPWR = 30,
- SIGSYS = 31
+ SIGSYS = 31,
}
// From `kill -l`
@@ -69,7 +69,7 @@ enum MacOSSignal {
SIGWINCH = 28,
SIGINFO = 29,
SIGUSR1 = 30,
- SIGUSR2 = 31
+ SIGUSR2 = 31,
}
export const Signal: { [key: string]: number } = {};
@@ -122,39 +122,40 @@ export const signals = {
},
windowChange(): SignalStream {
return signal(Signal.SIGWINCH);
- }
+ },
};
export class SignalStream
implements AsyncIterableIterator<void>, PromiseLike<void> {
- private rid: number;
- private pollingPromise: Promise<boolean> = Promise.resolve(false);
- private disposed = false;
+ #disposed = false;
+ #pollingPromise: Promise<boolean> = Promise.resolve(false);
+ #rid: number;
+
constructor(signo: number) {
- this.rid = bindSignal(signo).rid;
- this.loop();
+ this.#rid = bindSignal(signo).rid;
+ this.#loop();
}
- private async pollSignal(): Promise<boolean> {
- const res = await pollSignal(this.rid);
+ #pollSignal = async (): Promise<boolean> => {
+ const res = await pollSignal(this.#rid);
return res.done;
- }
+ };
- private async loop(): Promise<void> {
+ #loop = async (): Promise<void> => {
do {
- this.pollingPromise = this.pollSignal();
- } while (!(await this.pollingPromise) && !this.disposed);
- }
+ this.#pollingPromise = this.#pollSignal();
+ } while (!(await this.#pollingPromise) && !this.#disposed);
+ };
then<T, S>(
f: (v: void) => T | Promise<T>,
g?: (v: Error) => S | Promise<S>
): Promise<T | S> {
- return this.pollingPromise.then((_): void => {}).then(f, g);
+ return this.#pollingPromise.then(() => {}).then(f, g);
}
async next(): Promise<IteratorResult<void>> {
- return { done: await this.pollingPromise, value: undefined };
+ return { done: await this.#pollingPromise, value: undefined };
}
[Symbol.asyncIterator](): AsyncIterableIterator<void> {
@@ -162,10 +163,10 @@ export class SignalStream
}
dispose(): void {
- if (this.disposed) {
+ if (this.#disposed) {
throw new Error("The stream has already been disposed.");
}
- this.disposed = true;
- unbindSignal(this.rid);
+ this.#disposed = true;
+ unbindSignal(this.#rid);
}
}