aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js
diff options
context:
space:
mode:
authorGravatar dave caruso <me@paperdave.net> 2023-08-15 18:09:11 -0700
committerGravatar GitHub <noreply@github.com> 2023-08-15 18:09:11 -0700
commitb682e5bf590bac12175f3938f7bbea46a9ba42a7 (patch)
tree769091fa65e796f798b8f52b3647f164938fa786 /src/bun.js
parent17c348ed0aeef725103152001bceded77adb8a07 (diff)
downloadbun-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.zig6
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;