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)
}
}