aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/javascript.zig
diff options
context:
space:
mode:
authorGravatar dave caruso <me@paperdave.net> 2023-10-16 20:01:24 -0700
committerGravatar GitHub <noreply@github.com> 2023-10-16 20:01:24 -0700
commita3958190e8f106adca7fbf4ba2605056cb22aced (patch)
tree475057061d3470f1dc4d06b901d6bad0b898cb09 /src/bun.js/javascript.zig
parent6504bfef74b552aa834324adfe102c9ba0193039 (diff)
downloadbun-a3958190e8f106adca7fbf4ba2605056cb22aced.tar.gz
bun-a3958190e8f106adca7fbf4ba2605056cb22aced.tar.zst
bun-a3958190e8f106adca7fbf4ba2605056cb22aced.zip
fix(runtime): improve IPC reliability + organization pass on that code (#6475)
* dfghj * Handle messages that did not finish * tidy * ok * a * Merge remote-tracking branch 'origin/main' into dave/ipc-fixes * test failures --------- Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Diffstat (limited to 'src/bun.js/javascript.zig')
-rw-r--r--src/bun.js/javascript.zig24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/bun.js/javascript.zig b/src/bun.js/javascript.zig
index d1b87e34e..e93e65399 100644
--- a/src/bun.js/javascript.zig
+++ b/src/bun.js/javascript.zig
@@ -294,13 +294,8 @@ pub export fn Bun__Process__send(
return .zero;
}
var vm = globalObject.bunVM();
- if (vm.ipc) |ipc| {
- const fd = ipc.socket.fd();
- const success = IPC.serializeJSValueForSubprocess(
- globalObject,
- callFrame.argument(0),
- fd,
- );
+ if (vm.ipc) |ipc_instance| {
+ const success = ipc_instance.ipc.serializeAndSend(globalObject, callFrame.argument(0));
return if (success) .undefined else .zero;
} else {
globalObject.throw("IPC Socket is no longer open.", .{});
@@ -373,6 +368,14 @@ pub export fn Bun__onDidAppendPlugin(jsc_vm: *VirtualMachine, globalObject: *JSG
jsc_vm.bundler.linker.plugin_runner = &jsc_vm.plugin_runner.?;
}
+// pub fn getGlobalExitCodeForPipeFailure() u8 {
+// if (VirtualMachine.is_main_thread_vm) {
+// return VirtualMachine.get().exit_handler.exit_code;
+// }
+
+// return 0;
+// }
+
pub const ExitHandler = struct {
exit_code: u8 = 0,
@@ -2803,9 +2806,8 @@ pub const VirtualMachine = struct {
pub const IPCInstance = struct {
globalThis: ?*JSGlobalObject,
- socket: IPC.Socket,
uws_context: *uws.SocketContext,
- ipc_buffer: bun.ByteList,
+ ipc: IPC.IPCData,
pub fn handleIPCMessage(
this: *IPCInstance,
@@ -2855,13 +2857,13 @@ pub const VirtualMachine = struct {
var instance = bun.default_allocator.create(IPCInstance) catch @panic("OOM");
instance.* = .{
.globalThis = this.global,
- .socket = socket,
.uws_context = context,
- .ipc_buffer = bun.ByteList{},
+ .ipc = .{ .socket = socket },
};
var ptr = socket.ext(*IPCInstance);
ptr.?.* = instance;
this.ipc = instance;
+ instance.ipc.writeVersionPacket();
}
comptime {
if (!JSC.is_bindgen)
7d85da7a3e32ef36?s=13&d=retro' width='13' height='13' alt='Gravatar' /> Jarred Sumner 2-1/+37 2022-06-22Slightly customize the `events` polyfill so it uses ESMGravatar Jarred Sumner 1-1/+522 2022-06-22Fix memory bugs in escapeHTML & arrayBufferToStringGravatar Jarred Sumner 1-65/+61