diff options
author | Luca Casonato <lucacasonato@yahoo.com> | 2020-04-28 07:36:47 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-28 01:36:47 -0400 |
commit | 30dc9bb748f7885a8fd7fe1210e18bf45ee063b8 (patch) | |
tree | 9e24a53c4d6695ab70378a0dc06f63c5d63769d1 | |
parent | de751e5221cd2eafbdd9cddfb58b0619d74c0504 (diff) |
Make shutdown unstable and async (#4940)
-rw-r--r-- | cli/js/lib.deno.ns.d.ts | 2 | ||||
-rw-r--r-- | cli/js/ops/net.ts | 3 | ||||
-rw-r--r-- | cli/ops/net.rs | 4 |
3 files changed, 6 insertions, 3 deletions
diff --git a/cli/js/lib.deno.ns.d.ts b/cli/js/lib.deno.ns.d.ts index 6d354d034..3c568f798 100644 --- a/cli/js/lib.deno.ns.d.ts +++ b/cli/js/lib.deno.ns.d.ts @@ -1872,7 +1872,7 @@ declare namespace Deno { * const conn = await listener.accept(); * Deno.shutdown(conn.rid, Deno.ShutdownMode.Write); */ - export function shutdown(rid: number, how: ShutdownMode): void; + export function shutdown(rid: number, how: ShutdownMode): Promise<void>; /** **UNSTABLE**: new API, yet to be vetted. * diff --git a/cli/js/ops/net.ts b/cli/js/ops/net.ts index 369f2ca3c..d04c7ba8f 100644 --- a/cli/js/ops/net.ts +++ b/cli/js/ops/net.ts @@ -22,8 +22,9 @@ export enum ShutdownMode { ReadWrite, // unused } -export function shutdown(rid: number, how: ShutdownMode): void { +export function shutdown(rid: number, how: ShutdownMode): Promise<void> { sendSync("op_shutdown", { rid, how }); + return Promise.resolve(); } interface AcceptResponse { diff --git a/cli/ops/net.rs b/cli/ops/net.rs index 415d2cecc..b46eedc68 100644 --- a/cli/ops/net.rs +++ b/cli/ops/net.rs @@ -342,10 +342,12 @@ struct ShutdownArgs { fn op_shutdown( isolate: &mut CoreIsolate, - _state: &State, + state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, ) -> Result<JsonOp, OpError> { + state.check_unstable("Deno.shutdown"); + let args: ShutdownArgs = serde_json::from_value(args)?; let rid = args.rid as u32; |