This commit is contained in:
Jarred Sumner
2024-02-27 17:58:04 -08:00
parent f3c494f9c0
commit dc78bb6afd
4 changed files with 9 additions and 4 deletions

View File

@@ -3285,8 +3285,10 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp
this.request_body_buf = .{};
if (old == .Locked) {
var vm = this.server.vm;
defer vm.drainMicrotasks();
var loop = this.server.vm.eventLoop();
loop.enter();
defer loop.exit();
old.resolve(&body.value, this.server.globalThis);
}
return;

View File

@@ -810,6 +810,7 @@ pub const EventLoop = struct {
}
pub fn drainMicrotasks(this: *EventLoop) void {
this.virtual_machine.jsc.releaseWeakRefs();
this.drainMicrotasksWithGlobal(this.global);
}

View File

@@ -2026,7 +2026,8 @@ pub const Blob = struct {
const promise = this.promise.swap();
const err_instance = err.toSystemError().toErrorInstance(globalThis);
var event_loop = this.event_loop;
defer event_loop.drainMicrotasks();
event_loop.enter();
defer event_loop.exit();
this.deinit();
promise.reject(globalThis, err_instance);
}

View File

@@ -544,7 +544,8 @@ pub const WriteFileWindows = struct {
pub fn onFinish(container: *WriteFileWindows) void {
container.loop().unrefConcurrently();
var event_loop = container.event_loop;
defer event_loop.drainMicrotasks();
event_loop.enter();
defer event_loop.exit();
// We don't need to enqueue task since this is already in a task.
container.runFromJSThread();