fn crashHandler(userdata: ?*anyopaque) void userdata: ?*anyopaque1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372fn crashHandler(userdata: ?*anyopaque) void {
const ev: *Evented = @ptrCast(@alignCast(userdata));
_ = ev;
const thread = Thread.self orelse std.process.abort();
if (thread.current_context == &thread.idle_context) std.process.abort();
const fiber = thread.currentFiber();
@atomicStore(
Fiber.CancelStatus,
&fiber.cancel_status,
.{ .requested = true, .awaiting = .nothing },
.monotonic,
);
fiber.cancel_protection = .{ .user = .blocked, .acknowledged = true };
}