mirror of
https://github.com/denoland/deno.git
synced 2024-11-22 04:51:22 +00:00
parent
8d5af6ca52
commit
8142496c57
@ -34,7 +34,6 @@ const UNSTABLE_DENO_PROPS: &[&str] = &[
|
||||
"PluginPermissionDescriptor",
|
||||
"ReadPermissionDescriptor",
|
||||
"RunPermissionDescriptor",
|
||||
"ShutdownMode",
|
||||
"Signal",
|
||||
"SignalStream",
|
||||
"StartTlsOptions",
|
||||
|
18
cli/dts/lib.deno.ns.d.ts
vendored
18
cli/dts/lib.deno.ns.d.ts
vendored
@ -1711,11 +1711,7 @@ declare namespace Deno {
|
||||
/** The resource ID of the connection. */
|
||||
readonly rid: number;
|
||||
/** Shuts down (`shutdown(2)`) the writing side of the TCP connection. Most
|
||||
* callers should just use `close()`.
|
||||
*
|
||||
* **Unstable** because of lack of testing and because Deno.shutdown is also
|
||||
* unstable.
|
||||
* */
|
||||
* callers should just use `close()`. */
|
||||
closeWrite(): void;
|
||||
}
|
||||
|
||||
@ -1809,6 +1805,18 @@ declare namespace Deno {
|
||||
*/
|
||||
export function connectTls(options: ConnectTlsOptions): Promise<Conn>;
|
||||
|
||||
/** Shutdown socket send operations.
|
||||
*
|
||||
* Matches behavior of POSIX shutdown(3).
|
||||
*
|
||||
* ```ts
|
||||
* const listener = Deno.listen({ port: 80 });
|
||||
* const conn = await listener.accept();
|
||||
* Deno.shutdown(conn.rid);
|
||||
* ```
|
||||
*/
|
||||
export function shutdown(rid: number): Promise<void>;
|
||||
|
||||
export interface Metrics {
|
||||
opsDispatched: number;
|
||||
opsDispatchedSync: number;
|
||||
|
26
cli/dts/lib.deno.unstable.d.ts
vendored
26
cli/dts/lib.deno.unstable.d.ts
vendored
@ -835,32 +835,6 @@ declare namespace Deno {
|
||||
mtime: number | Date,
|
||||
): Promise<void>;
|
||||
|
||||
/** **UNSTABLE**: Under consideration to remove `ShutdownMode` entirely.
|
||||
*
|
||||
* Corresponds to `SHUT_RD`, `SHUT_WR`, `SHUT_RDWR` on POSIX-like systems.
|
||||
*
|
||||
* See: http://man7.org/linux/man-pages/man2/shutdown.2.html */
|
||||
export enum ShutdownMode {
|
||||
Read = 0,
|
||||
Write,
|
||||
ReadWrite, // TODO(ry) panics on ReadWrite.
|
||||
}
|
||||
|
||||
/** **UNSTABLE**: Both the `how` parameter and `ShutdownMode` enum are under
|
||||
* consideration for removal.
|
||||
*
|
||||
* Shutdown socket send and receive operations.
|
||||
*
|
||||
* Matches behavior of POSIX shutdown(3).
|
||||
*
|
||||
* ```ts
|
||||
* const listener = Deno.listen({ port: 80 });
|
||||
* const conn = await listener.accept();
|
||||
* Deno.shutdown(conn.rid, Deno.ShutdownMode.Write);
|
||||
* ```
|
||||
*/
|
||||
export function shutdown(rid: number, how: ShutdownMode): Promise<void>;
|
||||
|
||||
/** **UNSTABLE**: new API, yet to be vetted.
|
||||
*
|
||||
* A generic transport listener for message-oriented protocols. */
|
||||
|
@ -5,19 +5,8 @@
|
||||
const { errors } = window.__bootstrap.errors;
|
||||
const { read, write } = window.__bootstrap.io;
|
||||
|
||||
const ShutdownMode = {
|
||||
// See http://man7.org/linux/man-pages/man2/shutdown.2.html
|
||||
// Corresponding to SHUT_RD, SHUT_WR, SHUT_RDWR
|
||||
0: "Read",
|
||||
1: "Write",
|
||||
2: "ReadWrite",
|
||||
Read: 0, // TODO: nonsense, remove me.
|
||||
Write: 1,
|
||||
ReadWrite: 2, // unused
|
||||
};
|
||||
|
||||
function shutdown(rid, how) {
|
||||
return core.jsonOpAsync("op_shutdown", { rid, how });
|
||||
function shutdown(rid) {
|
||||
return core.jsonOpAsync("op_shutdown", { rid });
|
||||
}
|
||||
|
||||
function opAccept(rid, transport) {
|
||||
@ -78,9 +67,8 @@
|
||||
core.close(this.rid);
|
||||
}
|
||||
|
||||
// TODO(lucacasonato): make this unavailable in stable
|
||||
closeWrite() {
|
||||
shutdown(this.rid, ShutdownMode.Write);
|
||||
shutdown(this.rid);
|
||||
}
|
||||
}
|
||||
|
||||
@ -221,7 +209,6 @@
|
||||
opListen,
|
||||
Listener,
|
||||
shutdown,
|
||||
ShutdownMode,
|
||||
Datagram,
|
||||
};
|
||||
})(this);
|
||||
|
@ -111,7 +111,6 @@
|
||||
applySourceMap: __bootstrap.errorStack.opApplySourceMap,
|
||||
formatDiagnostics: __bootstrap.errorStack.opFormatDiagnostics,
|
||||
shutdown: __bootstrap.net.shutdown,
|
||||
ShutdownMode: __bootstrap.net.ShutdownMode,
|
||||
listen: __bootstrap.netUnstable.listen,
|
||||
connect: __bootstrap.netUnstable.connect,
|
||||
listenDatagram: __bootstrap.netUnstable.listenDatagram,
|
||||
|
@ -24,7 +24,6 @@ use deno_core::ZeroCopyBuf;
|
||||
use serde::Deserialize;
|
||||
use std::borrow::Cow;
|
||||
use std::cell::RefCell;
|
||||
use std::net::Shutdown;
|
||||
use std::net::SocketAddr;
|
||||
use std::rc::Rc;
|
||||
use tokio::io::AsyncWriteExt;
|
||||
@ -331,7 +330,6 @@ async fn op_connect(
|
||||
#[derive(Deserialize)]
|
||||
struct ShutdownArgs {
|
||||
rid: i32,
|
||||
how: i32,
|
||||
}
|
||||
|
||||
async fn op_shutdown(
|
||||
@ -344,14 +342,6 @@ async fn op_shutdown(
|
||||
let args: ShutdownArgs = serde_json::from_value(args)?;
|
||||
|
||||
let rid = args.rid as u32;
|
||||
let how = args.how;
|
||||
|
||||
// TODO(bartlomieju): no longer needed after Tokio 1.0 upgrade
|
||||
let _shutdown_mode = match how {
|
||||
0 => Shutdown::Read, // TODO: nonsense, remove me.
|
||||
1 => Shutdown::Write,
|
||||
_ => unimplemented!(),
|
||||
};
|
||||
|
||||
let resource = state
|
||||
.borrow()
|
||||
|
Loading…
Reference in New Issue
Block a user