Back to Provenance

3535

.changelog/3535.md

3.3.1727 B
Original Source

Changed

  • PVFeatureFlags: thread-safe synchronous reads — Removed @MainActor isolation from PVFeatureFlags. All isEnabled and subscript reads are now synchronous and callable from any thread or actor without await. Internal state is protected by OSAllocatedUnfairLock (iOS/tvOS 16+) with bundled state, eliminating bare lock/unlock pairs and early-return deadlock risk. Falls back to NSLock on Linux. A pre-computed [String: Bool] cache is rebuilt atomically on config changes. PVFeatureFlagsManager subscribes to a stateDidChange Combine publisher. Callers in PVGameLibrary and PVAppDelegate updated to use PVFeatureFlags.shared.isEnabled(_:) directly, removing unnecessary @MainActor hops.