HOME
| OPENMP API Specification: Version 5.1 November 2020

5.3.8  OMPD Handle Types

Summary The OMPD library defines handles for referring to address spaces, threads, parallel regions and tasks. The internal structure of the handles are opaque to the third-party tool.

Format

SVG-Viewer needed.

 

 
typedef struct _ompd_aspace_handle ompd_address_space_handle_t; 
typedef struct _ompd_thread_handle ompd_thread_handle_t; 
typedef struct _ompd_parallel_handle ompd_parallel_handle_t; 
typedef struct _ompd_task_handle ompd_task_handle_t;  

SVG-Viewer needed.

Description OMPD uses handles for address spaces (ompd_address_space_handle_t), threads (ompd_thread_handle_t), parallel regions (ompd_parallel_handle_t), and tasks (ompd_task_handle_t). Each operation of the OMPD interface that applies to a particular address space, thread, parallel region or task must explicitly specify a corresponding handle. A handle for an entity is constant while the entity itself is alive. Handles are defined by the OMPD library and are opaque to the third-party tool.

Defining externally visible type names in this way introduces type safety to the interface, and helps to catch instances where incorrect handles are passed by the third-party tool to the OMPD library. The structures do not need to be defined; instead, the OMPD library must cast incoming (pointers to) handles to the appropriate internal, private types.