mirror of
https://github.com/denoland/deno.git
synced 2025-08-04 19:08:15 +00:00
fix(ext/node): FsWatcher ref and unref (#22987)
Fixes https://github.com/denoland/deno/issues/22973 --------- Co-authored-by: Satya Rohith <me@satyarohith.com>
This commit is contained in:
parent
737adbe1b0
commit
5b2f689f08
3 changed files with 35 additions and 7 deletions
|
@ -17,6 +17,7 @@ import { SymbolDispose } from "ext:deno_web/00_infra.js";
|
|||
|
||||
class FsWatcher {
|
||||
#rid = 0;
|
||||
#promise;
|
||||
|
||||
constructor(paths, options) {
|
||||
const { recursive } = options;
|
||||
|
@ -32,9 +33,18 @@ class FsWatcher {
|
|||
return this.#rid;
|
||||
}
|
||||
|
||||
unref() {
|
||||
core.unrefOpPromise(this.#promise);
|
||||
}
|
||||
|
||||
ref() {
|
||||
core.refOpPromise(this.#promise);
|
||||
}
|
||||
|
||||
async next() {
|
||||
try {
|
||||
const value = await op_fs_events_poll(this.#rid);
|
||||
this.#promise = op_fs_events_poll(this.#rid);
|
||||
const value = await this.#promise;
|
||||
return value ? { value, done: false } : { value: undefined, done: true };
|
||||
} catch (error) {
|
||||
if (ObjectPrototypeIsPrototypeOf(BadResourcePrototype, error)) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue