Zombie Process Termination Time

Hey,

I've got a program that fork's a list of child processes, and keeps their pid's in a list.

After the parent finishes it's main business logic, it needs to check which child already finished - and when.
Is it possible - using waitpid or any other func\syscall - get this information without hanging the parent?

Thanks ahead

--sternr