TAU_REGISTER_FORK

Langue: en

Version: 08/31/2005 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

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);
 }