aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-04-01 23:36:48 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-04-01 23:36:48 -0700
commitb099e7232f8f69a663adb0e50eaa5c4300bbfbb4 (patch)
treef48196bed8f4110443bf0e37811ba0c84c13c14d
parentc657c7b84639854d49d15a3d1609b81a7f1914d6 (diff)
downloadbun-b099e7232f8f69a663adb0e50eaa5c4300bbfbb4.tar.gz
bun-b099e7232f8f69a663adb0e50eaa5c4300bbfbb4.tar.zst
bun-b099e7232f8f69a663adb0e50eaa5c4300bbfbb4.zip
Decrement task counter
-rw-r--r--src/javascript/jsc/javascript.zig13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/javascript/jsc/javascript.zig b/src/javascript/jsc/javascript.zig
index 66bd0c620..954c59ffc 100644
--- a/src/javascript/jsc/javascript.zig
+++ b/src/javascript/jsc/javascript.zig
@@ -261,7 +261,7 @@ pub fn IOTask(comptime Context: type) type {
pub fn createOnJSThread(allocator: std.mem.Allocator, globalThis: *JSGlobalObject, value: *Context) !*This {
var this = try allocator.create(This);
this.* = .{
- .event_loop = VirtualMachine.vm.event_loop,
+ .event_loop = VirtualMachine.vm.eventLoop(),
.ctx = value,
.allocator = allocator,
.globalThis = globalThis,
@@ -289,7 +289,9 @@ pub fn IOTask(comptime Context: type) type {
}
pub fn deinit(this: *This) void {
- this.allocator.destroy(this);
+ var allocator = this.allocator;
+ this.* = undefined;
+ allocator.destroy(this);
}
};
}
@@ -550,21 +552,28 @@ pub const VirtualMachine = struct {
var transform_task: *BunTimerTimeoutTask = task.get(BunTimerTimeoutTask).?;
transform_task.*.runFromJS();
finished += 1;
+ vm_.active_tasks -|= 1;
},
@field(Task.Tag, @typeName(ReadFileTask)) => {
var transform_task: *ReadFileTask = task.get(ReadFileTask).?;
transform_task.*.runFromJS();
+ transform_task.deinit();
finished += 1;
+ vm_.active_tasks -|= 1;
},
@field(Task.Tag, @typeName(OpenAndStatFileTask)) => {
var transform_task: *OpenAndStatFileTask = task.get(OpenAndStatFileTask).?;
transform_task.*.runFromJS();
+ transform_task.deinit();
finished += 1;
+ vm_.active_tasks -|= 1;
},
@field(Task.Tag, @typeName(WriteFileTask)) => {
var transform_task: *WriteFileTask = task.get(WriteFileTask).?;
transform_task.*.runFromJS();
+ transform_task.deinit();
finished += 1;
+ vm_.active_tasks -|= 1;
},
else => unreachable,
}