Locking NSLock wrapper for Swift Protected private var state = Protected(State.resumed) let _ = state.value sync state.sync { state in state = .resumed }