Obtain VP-environment information
By default, the routine manager executes a C UDR in a CPU VP class,
which is a yielding VP class. However, execution on the CPU VP implies
that the UDR is well-behaved. (For more information, see Create a well-behaved routine.) If your UDR is not well-behaved,
you can specify that the routine manager execute the UDR in a user-defined
VP class. However, a user-defined VP class imposes limitations on
the tasks that the UDR can perform. If these limitations are too restrictive
for your UDR, the UDR can dynamically obtain information about its
VP environment and make decisions about whether to change it.
Important: The need to examine and possibly
change the VP environment must only be done in special cases. For
the most efficient execution, a C UDR must be well-behaved and thereby
execute safely in the CPU VP. Ill-behaved routines can usually execute
in a user-defined VP class without changing the VP environment.
From within a C UDR, you can obtain the following kinds of information
about the VP environment:
- Information about the current VP
- Information about the VP class to which the current VP belongs
If a UDR can identify its VP environment, it can sometimes take care of its own migratory needs.