Scroll to navigation

PMIX_INFO_PERSISTENT(3) OpenPMIx PMIX_INFO_PERSISTENT(3)

PMIx_Info_persistent — Mark a pmix_info_t(5) <#man5-pmix-info-t> as persistent

SYNOPSIS

#include <pmix.h>
void PMIx_Info_persistent(pmix_info_t *p);


Python Syntax

No Python equivalent

INPUT PARAMETERS

•
p: Pointer to the pmix_info_t(5) <#man5-pmix-info-t> structure to be marked persistent.

DESCRIPTION

The PMIx_Info_persistent function sets the PMIX_INFO_PERSISTENT directive bit in the info structure’s flags field. A persistent info is understood not to own the pmix_value_t(5) <#man5-pmix-value-t> payload it carries, so the library will not release that value on the info’s behalf.

This flag changes the behavior of the info lifecycle routines:

  • PMIx_Info_destruct(3) <#man3-pmix-info-destruct> and PMIx_Info_free(3) <#man3-pmix-info-free> leave the contained value untouched instead of releasing it.
  • PMIx_Info_xfer(3) <#man3-pmix-info-xfer> copies the value by shallow structure assignment (the destination shares the source’s underlying value memory) rather than deep-copying it.

Use this flag when the value memory is owned elsewhere and must outlive the info structure, to avoid a double free. Whether an info is currently persistent can be tested with PMIx_Info_is_persistent(3) <#man3-pmix-info-is-persistent>.

RETURN VALUE

PMIx_Info_persistent returns no value (void).

NOTES

PMIx_Info_persistent is the OpenPMIx routine underlying the historical PMIX_INFO_SET_PERSISTENT macro. That macro is retained in pmix_deprecated.h for backward compatibility and simply expands to a call to this function.

Info structures default to non-persistent at construction, which the surrounding source notes is retained “for historical reasons”: the library owns and releases the contained value unless this flag is explicitly set.

See also:

PMIx_Info_is_persistent(3) <#man3-pmix-info-is-persistent>, PMIx_Info_destruct(3) <#man3-pmix-info-destruct>, PMIx_Info_free(3) <#man3-pmix-info-free>, PMIx_Info_xfer(3) <#man3-pmix-info-xfer>, pmix_info_t(5) <#man5-pmix-info-t>, pmix_value_t(5) <#man5-pmix-value-t>


Copyright

2014-2026, OpenPMIx Community

September 27, 2026