summaryrefslogtreecommitdiff
path: root/ext/net
diff options
context:
space:
mode:
Diffstat (limited to 'ext/net')
-rw-r--r--ext/net/01_net.js10
-rw-r--r--ext/net/lib.deno_net.d.ts6
2 files changed, 14 insertions, 2 deletions
diff --git a/ext/net/01_net.js b/ext/net/01_net.js
index f2bf5e7df..05aca07e5 100644
--- a/ext/net/01_net.js
+++ b/ext/net/01_net.js
@@ -9,6 +9,8 @@ import {
writableStreamForRid,
} from "ext:deno_web/06_streams.js";
import * as abortSignal from "ext:deno_web/03_abort_signal.js";
+import { SymbolDispose } from "ext:deno_web/00_infra.js";
+
const primordials = globalThis.__bootstrap.primordials;
const {
ArrayPrototypeFilter,
@@ -160,6 +162,10 @@ class Conn {
(id) => core.unrefOp(id),
);
}
+
+ [SymbolDispose]() {
+ core.tryClose(this.#rid);
+ }
}
class TcpConn extends Conn {
@@ -249,6 +255,10 @@ class Listener {
core.close(this.rid);
}
+ [SymbolDispose]() {
+ core.tryClose(this.#rid);
+ }
+
[SymbolAsyncIterator]() {
return this;
}
diff --git a/ext/net/lib.deno_net.d.ts b/ext/net/lib.deno_net.d.ts
index 030157d63..79e15563a 100644
--- a/ext/net/lib.deno_net.d.ts
+++ b/ext/net/lib.deno_net.d.ts
@@ -2,6 +2,7 @@
/// <reference no-default-lib="true" />
/// <reference lib="esnext" />
+/// <reference lib="esnext.disposable" />
declare namespace Deno {
/** @category Network */
@@ -24,7 +25,8 @@ declare namespace Deno {
*
* @category Network
*/
- export interface Listener<T extends Conn = Conn> extends AsyncIterable<T> {
+ export interface Listener<T extends Conn = Conn>
+ extends AsyncIterable<T>, Disposable {
/** Waits for and resolves to the next connection to the `Listener`. */
accept(): Promise<T>;
/** Close closes the listener. Any pending accept promises will be rejected
@@ -57,7 +59,7 @@ declare namespace Deno {
export type TlsListener = Listener<TlsConn>;
/** @category Network */
- export interface Conn extends Reader, Writer, Closer {
+ export interface Conn extends Reader, Writer, Closer, Disposable {
/** The local address of the connection. */
readonly localAddr: Addr;
/** The remote address of the connection. */