while (!h_done){
bfs(edges, vertices)
cudaMemcpy(&h_done, &d_done, sizeof(bool), cudaDeviceToHost);
}
while(!h_done){
cudaMemcpy(&d_done, &h_true, sizeof(bool), cudaHostToDevice);
bfs(edges, vertices)
cudaMemcpy(&h_done, &d_done, sizeof(bool), cudaDeviceToHost);
}
if((vfirst != -1) && (vsecond == -1)){
vertices[vsecond] = vfirst + 1;
done = false;
}
if ((vfirst == -1) && (vsecond != -1)){
vertices[vfirst] = vsecond + 1;
done = false;
}