pthread_atfork

Hi,
I had a doubt regarding the ordering of function calls that are registered using
pthread_atfork( void (*prepare)(void), void (*parent)(void), void (*child)(void)) .

Posix standard requires that when pthread_atfork is called several times, the prepare handlers are executed in reverse order as they were registered, and child and parent handlers are executed in the same order as they were registered.

Why is this ordering important and why are prepare handlers called in the reversed order ?

Thanks in advance,
-Girish