PAPI3:PAPI destroy eventset.3
#include <papi.h> int PAPI_cleanup_eventset(int EventSet ); int PAPI_destroy_eventset(int * EventSet );
#include fpapi.h PAPIF_cleanup_eventset(C_INT EventSet, C_INT check ) PAPIF_destroy_eventset(C_INT EventSet, C_INT check )
PAPI_cleanup_eventset() removes all events from a PAPI event set and turns off profiling and overflow for all events in the eventset. This can not be called if the EventSet is not stopped. PAPI_destroy_eventset() deallocates the memory associated with an empty PAPI event set.
EventSet -- an integer handle for a PAPI event set as created by PAPI_create_eventset (3). *EventSet -- a pointer to the integer handle for a PAPI event set as created by PAPI_create_eventset (3). The value pointed to by EventSet is then set to PAPI_NULL on success.
PAPI_EINVAL One or more of the arguments is invalid. Attempting to destroy a non-empty event set or passing in a null pointer to be destroyed.
PAPI_ENOEVST The EventSet specified does not exist.
PAPI_EISRUN The EventSet is currently counting events.
PAPI_EBUG Internal error, send mail to email@example.com and complain.
/* Remove all events in the eventset */ if (PAPI_cleanup_eventset(EventSet) != PAPI_OK) handle_error(1); /* Free all memory and data structures, EventSet must be empty. */ if (PAPI_destroy_eventset(&EventSet) != PAPI_OK) handle_error(1);
If the user has set profile on an event with the call, then when destroying the EventSet the memory allocated by will not be freed. The user should turn off profiling on the Events before destroying the EventSet to prevent this behavior.