pub async fn wait(self) -> Result<(), tokio::task::JoinError> {
        let Self {
            mut join_handles, ..
        } = self;
        // Wait for all of the handles to finish up
        while let Some(result) = join_handles.next().await {
            result?;
        }

        Ok(())
    }
Consumes the watcher and waits for all futures to be finished.
Primarily used after the walk is canceled to ensure all tasks
have been stopped.
crates/turborepo-graph-utils/src/walker.rs