Semaphore.finished was a terrible idea