diff options
author | 2022-04-01 23:36:48 -0700 | |
---|---|---|
committer | 2022-04-01 23:36:48 -0700 | |
commit | b099e7232f8f69a663adb0e50eaa5c4300bbfbb4 (patch) | |
tree | f48196bed8f4110443bf0e37811ba0c84c13c14d | |
parent | c657c7b84639854d49d15a3d1609b81a7f1914d6 (diff) | |
download | bun-b099e7232f8f69a663adb0e50eaa5c4300bbfbb4.tar.gz bun-b099e7232f8f69a663adb0e50eaa5c4300bbfbb4.tar.zst bun-b099e7232f8f69a663adb0e50eaa5c4300bbfbb4.zip |
Decrement task counter
-rw-r--r-- | src/javascript/jsc/javascript.zig | 13 |
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, } |