In depth first search each vertex can be associated with a discovery time and a finish time. I am reading the following implementation of topological sort in terms of depth first search
TOPOLOGICAL-SORT(G)
1 call DFS(G) to compute finish times for each vertex
2 as each vertex is finished, insert it to the front of a linked list
3 return the linked list of vertices
I don't see why it's necessary to compute the finish time for each vertex. Also the finish time is not used anywhere in the algorithm after it's being computed, so why do we need it?