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.ts55
1 files changed, 0 insertions, 55 deletions
diff --git a/cli/js/signals.ts b/cli/js/signals.ts
index 3295b9e80..28bc271c4 100644
--- a/cli/js/signals.ts
+++ b/cli/js/signals.ts
@@ -72,8 +72,6 @@ enum MacOSSignal {
SIGUSR2 = 31
}
-/** Signals numbers. This is platform dependent.
- */
export const Signal: { [key: string]: number } = {};
export function setSignals(): void {
@@ -84,31 +82,6 @@ export function setSignals(): void {
}
}
-/**
- * Returns the stream of the given signal number. You can use it as an async
- * iterator.
- *
- * for await (const _ of Deno.signal(Deno.Signal.SIGTERM)) {
- * console.log("got SIGTERM!");
- * }
- *
- * You can also use it as a promise. In this case you can only receive the
- * first one.
- *
- * await Deno.signal(Deno.Signal.SIGTERM);
- * console.log("SIGTERM received!")
- *
- * If you want to stop receiving the signals, you can use .dispose() method
- * of the signal stream object.
- *
- * const sig = Deno.signal(Deno.Signal.SIGTERM);
- * setTimeout(() => { sig.dispose(); }, 5000);
- * for await (const _ of sig) {
- * console.log("SIGTERM!")
- * }
- *
- * The above for-await loop exits after 5 seconds when sig.dispose() is called.
- */
export function signal(signo: number): SignalStream {
if (build.os === "win") {
throw new Error("not implemented!");
@@ -117,73 +90,45 @@ export function signal(signo: number): SignalStream {
}
export const signals = {
- /** Returns the stream of SIGALRM signals.
- * This method is the shorthand for Deno.signal(Deno.Signal.SIGALRM). */
alarm(): SignalStream {
return signal(Signal.SIGALRM);
},
- /** Returns the stream of SIGCHLD signals.
- * This method is the shorthand for Deno.signal(Deno.Signal.SIGCHLD). */
child(): SignalStream {
return signal(Signal.SIGCHLD);
},
- /** Returns the stream of SIGHUP signals.
- * This method is the shorthand for Deno.signal(Deno.Signal.SIGHUP). */
hungup(): SignalStream {
return signal(Signal.SIGHUP);
},
- /** Returns the stream of SIGINT signals.
- * This method is the shorthand for Deno.signal(Deno.Signal.SIGINT). */
interrupt(): SignalStream {
return signal(Signal.SIGINT);
},
- /** Returns the stream of SIGIO signals.
- * This method is the shorthand for Deno.signal(Deno.Signal.SIGIO). */
io(): SignalStream {
return signal(Signal.SIGIO);
},
- /** Returns the stream of SIGPIPE signals.
- * This method is the shorthand for Deno.signal(Deno.Signal.SIGPIPE). */
pipe(): SignalStream {
return signal(Signal.SIGPIPE);
},
- /** Returns the stream of SIGQUIT signals.
- * This method is the shorthand for Deno.signal(Deno.Signal.SIGQUIT). */
quit(): SignalStream {
return signal(Signal.SIGQUIT);
},
- /** Returns the stream of SIGTERM signals.
- * This method is the shorthand for Deno.signal(Deno.Signal.SIGTERM). */
terminate(): SignalStream {
return signal(Signal.SIGTERM);
},
- /** Returns the stream of SIGUSR1 signals.
- * This method is the shorthand for Deno.signal(Deno.Signal.SIGUSR1). */
userDefined1(): SignalStream {
return signal(Signal.SIGUSR1);
},
- /** Returns the stream of SIGUSR2 signals.
- * This method is the shorthand for Deno.signal(Deno.Signal.SIGUSR2). */
userDefined2(): SignalStream {
return signal(Signal.SIGUSR2);
},
- /** Returns the stream of SIGWINCH signals.
- * This method is the shorthand for Deno.signal(Deno.Signal.SIGWINCH). */
windowChange(): SignalStream {
return signal(Signal.SIGWINCH);
}
};
-/** SignalStream represents the stream of signals, implements both
- * AsyncIterator and PromiseLike */
export class SignalStream
implements AsyncIterableIterator<void>, PromiseLike<void> {
private rid: number;
- /** The promise of polling the signal,
- * resolves with false when it receives signal,
- * Resolves with true when the signal stream is disposed. */
private pollingPromise: Promise<boolean> = Promise.resolve(false);
- /** The flag, which is true when the stream is disposed. */
private disposed = false;
constructor(signo: number) {
this.rid = bindSignal(signo).rid;