From b099e7232f8f69a663adb0e50eaa5c4300bbfbb4 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Fri, 1 Apr 2022 23:36:48 -0700 Subject: Decrement task counter --- src/javascript/jsc/javascript.zig | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src') 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, } -- cgit v1.2.3