fn free(context: *anyopaque, memory: []u8, alignment: Alignment, ra: usize) void context: *anyopaquememory: []u8alignment: Alignmentra: usize200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216fn free(context: *anyopaque, memory: []u8, alignment: Alignment, ra: usize) void {
_ = context;
_ = ra;
const class = sizeClassIndex(memory.len, alignment);
if (class >= size_class_count) {
@branchHint(.unlikely);
return PageAllocator.unmap(@alignCast(memory));
}
const node: *usize = @ptrCast(@alignCast(memory.ptr));
const t = Thread.lock();
defer t.unlock();
node.* = t.frees[class];
t.frees[class] = @intFromPtr(node);
}