summaryrefslogtreecommitdiff
path: root/docs/examples/os_signals.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/os_signals.md')
-rw-r--r--docs/examples/os_signals.md35
1 files changed, 35 insertions, 0 deletions
diff --git a/docs/examples/os_signals.md b/docs/examples/os_signals.md
new file mode 100644
index 000000000..5f66f3340
--- /dev/null
+++ b/docs/examples/os_signals.md
@@ -0,0 +1,35 @@
+## Handle OS Signals
+
+> This program makes use of an unstable Deno feature. Learn more about
+> [unstable features](../../runtime/unstable).
+
+[API Reference](https://deno.land/typedoc/index.html#signal)
+
+You can use `Deno.signal()` function for handling OS signals.
+
+```
+for await (const _ of Deno.signal(Deno.Signal.SIGINT)) {
+ console.log("interrupted!");
+}
+```
+
+`Deno.signal()` also works as a promise.
+
+```
+await Deno.signal(Deno.Singal.SIGINT);
+console.log("interrupted!");
+```
+
+If you want to stop watching the signal, you can use `dispose()` method of the
+signal object.
+
+```
+const sig = Deno.signal(Deno.Signal.SIGINT);
+setTimeout(() => { sig.dispose(); }, 5000);
+
+for await (const _ of sig) {
+ console.log("interrupted");
+}
+```
+
+The above for-await loop exits after 5 seconds when sig.dispose() is called.