diff options
author | Luca Casonato <hello@lcas.dev> | 2023-11-01 20:26:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-01 20:26:12 +0100 |
commit | d42f1543121e7245789a96a485d1ef7645cb5fba (patch) | |
tree | d57a10ac527fe5b6796a3a8866af95f0f1a5d7bd /ext/kv | |
parent | 1d19b1011bd7df50598f5981408c2d78c35b76d2 (diff) |
feat: disposable Deno resources (#20845)
This commit implements Symbol.dispose and Symbol.asyncDispose for
the relevant resources.
Closes #20839
---------
Signed-off-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Diffstat (limited to 'ext/kv')
-rw-r--r-- | ext/kv/01_db.ts | 5 | ||||
-rw-r--r-- | ext/kv/lib.rs | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/ext/kv/01_db.ts b/ext/kv/01_db.ts index 6e8a571f0..34678261a 100644 --- a/ext/kv/01_db.ts +++ b/ext/kv/01_db.ts @@ -12,6 +12,7 @@ const { SymbolToStringTag, Uint8ArrayPrototype, } = globalThis.__bootstrap.primordials; +import { SymbolDispose } from "ext:deno_web/00_infra.js"; const core = Deno.core; const ops = core.ops; @@ -299,6 +300,10 @@ class Kv { close() { core.close(this.#rid); } + + [SymbolDispose]() { + core.tryClose(this.#rid); + } } class AtomicOperation { diff --git a/ext/kv/lib.rs b/ext/kv/lib.rs index 9e2273108..d357a2927 100644 --- a/ext/kv/lib.rs +++ b/ext/kv/lib.rs @@ -66,7 +66,7 @@ const MAX_TOTAL_MUTATION_SIZE_BYTES: usize = 800 * 1024; const MAX_TOTAL_KEY_SIZE_BYTES: usize = 80 * 1024; deno_core::extension!(deno_kv, - deps = [ deno_console ], + deps = [ deno_console, deno_web ], parameters = [ DBH: DatabaseHandler ], ops = [ op_kv_database_open<DBH>, |