diff options
author | 2023-08-15 18:09:11 -0700 | |
---|---|---|
committer | 2023-08-15 18:09:11 -0700 | |
commit | b682e5bf590bac12175f3938f7bbea46a9ba42a7 (patch) | |
tree | 769091fa65e796f798b8f52b3647f164938fa786 /src/bun.js | |
parent | 17c348ed0aeef725103152001bceded77adb8a07 (diff) | |
download | bun-b682e5bf590bac12175f3938f7bbea46a9ba42a7.tar.gz bun-b682e5bf590bac12175f3938f7bbea46a9ba42a7.tar.zst bun-b682e5bf590bac12175f3938f7bbea46a9ba42a7.zip |
Fix event loop issue with `Bun.connect` (#4157)
* Fix event loop issue with Bun.connect
* sorry
* add test and fix another edge case
Diffstat (limited to 'src/bun.js')
-rw-r--r-- | src/bun.js/api/bun/socket.zig | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/bun.js/api/bun/socket.zig b/src/bun.js/api/bun/socket.zig index ce43e3574..05c382359 100644 --- a/src/bun.js/api/bun/socket.zig +++ b/src/bun.js/api/bun/socket.zig @@ -985,6 +985,7 @@ pub const Listener = struct { exception.* = ZigString.static("Failed to connect").toErrorInstance(globalObject).asObjectRef(); return .zero; }; + tls.poll_ref.ref(handlers.vm); return promise_value; } else { @@ -1010,6 +1011,7 @@ pub const Listener = struct { exception.* = ZigString.static("Failed to connect").toErrorInstance(globalObject).asObjectRef(); return .zero; }; + tcp.poll_ref.ref(handlers.vm); return promise_value; } @@ -1175,7 +1177,7 @@ fn NewSocket(comptime ssl: bool) type { defer this.markInactive(); const handlers = this.handlers; - this.poll_ref.unref(handlers.vm); + this.poll_ref.unrefOnNextTick(handlers.vm); const callback = handlers.onConnectError; var globalObject = handlers.globalObject; @@ -1212,7 +1214,6 @@ fn NewSocket(comptime ssl: bool) type { const err_ = err.toErrorInstance(globalObject); promise.rejectOnNextTickAsHandled(globalObject, err_); this.has_pending_activity.store(false, .Release); - this.poll_ref.unref(handlers.vm); } } @@ -1280,7 +1281,6 @@ fn NewSocket(comptime ssl: bool) type { } } - this.poll_ref.ref(this.handlers.vm); this.detached = false; this.socket = socket; |