NAME
TAU_REGISTER_FORK - Informs the measurement system that a fork has
taken place
SYNOPSIS
C/C++:
TAU_REGISTER_FORK(int pid, enum TauFork_t option);
DESCRIPTION
To register a child process obtained from the fork() syscall, invoke
the TAU_REGISTER_FORK macro. It takes two parameters, the first is the
node id of the child process (typically the process id returned by the
fork call or any 0..N-1 range integer). The second parameter specifies
whether the performance data for the child process should be derived
from the parent at the time of fork ( TAU_INCLUDE_PARENT_DATA ) or
should be independent of its parent at the time of fork (
TAU_EXCLUDE_PARENT_DATA ). If the process id is used as the node id,
before any analysis is done, all profile files should be converted to
contiguous node numbers (from 0..N-1). It is highly recommended to use
flat contiguous node numbers in this call for profiling and tracing.
EXAMPLE
C/C++ :
pID = fork();
if (pID == 0) {
printf("Parent : pid returned %d\n", pID)
} else {
// If we’d used the TAU_INCLUDE_PARENT_DATA, we get
// the performance data from the parent in this process
// as well.
TAU_REGISTER_FORK(pID, TAU_EXCLUDE_PARENT_DATA);
printf("Child : pid = %d", pID);
}
08/31/2005