const std = @import("std"); pub fn Shared(T: type) type { return struct { value: T, rw_lock: *std.Thread.RwLock, pub fn unlock(self: *@This()) void { self.rw_lock.unlockShared(); self.* = undefined; } }; }