func stopManaging()

in Sources/XCTest/Private/WaiterManager.swift [96:112]


    func stopManaging(_ waiter: WaiterType) {
        guard let thread = thread else { fatalError("\(self) no longer belongs to a thread") }
        precondition(thread === Thread.current, "\(#function) called on wrong thread, must be called on \(thread)")

        queue.sync {
            precondition(!managedWaiterStack.isEmpty, "Waiter stack was empty when requesting to stop managing: \(waiter)")

            let expectedIndex = managedWaiterStack.index(before: managedWaiterStack.endIndex)
            let waiterDetails = managedWaiterStack[expectedIndex]
            guard waiter == waiterDetails.waiter else {
                fatalError("Top waiter on stack \(waiterDetails.waiter) is not equal to waiter to stop managing: \(waiter)")
            }

            waiterDetails.watchdog?.cancel()
            managedWaiterStack.remove(at: expectedIndex)
        }
    }