19.2.267. PMIx_server_delete_process_set
PMIx_server_delete_process_set — Delete a PMIx process set name.
19.2.267.1. SYNOPSIS
#include <pmix_server.h>
pmix_status_t PMIx_server_delete_process_set(char *pset_name);
19.2.267.1.1. Python Syntax
from pmix import *
foo = PMIxServer()
# ... after a successful foo.init() ...
rc = foo.delete_process_set('myset')
19.2.267.2. INPUT PARAMETERS
pset_name: NULL-terminated string name of the process set being deleted.
19.2.267.3. DESCRIPTION
Provide a function by which the host environment can delete a process set name previously created with PMIx_server_define_process_set(3). Deleting the name has no impact on the member processes themselves — it simply removes the label and its associated membership record from the local PMIx server.
When called, the PMIx server library alerts all local clients to the
deletion by generating a PMIX_PROCESS_SET_DELETE event carrying the
PMIX_PSET_NAME attribute (the name of the deleted set), then removes
the corresponding entry from its internal list of process sets. If no set
with the given name is currently recorded, the notification is still
issued and the call completes successfully.
PMIx_server_delete_process_set is a blocking call. Internally it
thread-shifts the request onto the PMIx progress thread, emits the local
notification, removes the recorded set, and returns once that processing
is complete.
19.2.267.4. RETURN VALUE
Returns one of the following:
PMIX_SUCCESS— the deletion was processed and the local notification was issued.PMIX_ERR_INIT— the PMIx server library has not been initialized.PMIX_ERR_NOT_AVAILABLE— the library’s progress engine has been stopped, so the request cannot be serviced.
PMIx error constants are defined in pmix_common.h.
19.2.267.5. NOTES
This API is restricted to the server role and must be called only after a successful PMIx_server_init(3).
The host environment is responsible for ensuring consistent knowledge of process set membership across all involved PMIx servers. The PMIx library only removes the definition on the local server; it does not propagate the deletion to peer servers.
19.2.267.6. PROGRESS THREAD RESTRICTION
A blocking PMIx call must not be made from within the PMIx progress thread. Any code the library itself invokes runs on that thread: an event handler registered through PMIx_Register_event_handler(3), a callback passed to a non-blocking PMIx API, and — in a server or tool — the completion of a host-module up-call. A blocking call waits for work that the progress thread has to perform, so making one from that thread waits for itself and never returns. The PMIx Standard disallows it, and there is no way for an implementation to service such a request.
Where this call has a blocking form — including the blocking
behavior a non-blocking entry point adopts when it is passed a NULL
cbfunc — that form detects the situation and returns
PMIX_ERR_WOULD_BLOCK immediately, accompanied by a diagnostic naming
the call. Nothing is done and no callback is invoked.
PMIX_ERR_WOULD_BLOCK here is not a transient condition to retry: it
reports a call that cannot be serviced from where it was made. Reissue
it as the non-blocking form with a callback, or from a thread of your
own.