- destroy an instance of the Endpoint
cc [ flag… ] file… -ldat [ library… ] #include <dat/udat.h> DAT_RETURN dat_ep_free ( IN DAT_EP_HANDLE ep_handle )
Handle for an instance of the Endpoint.
The dat_ep_free() function destroys an instance of the Endpoint.
The Endpoint can be destroyed in any Endpoint state except Reserved, Passive Connection Pending, and Tentative Connection Pending. The destruction of the Endpoint can also cause the destruction of DTOs and RMRs posted to the Endpoint and not dequeued yet. This includes completions for all outstanding and in-progress DTOs/RMRs. The Consumer must be ready for all completions that are not dequeued yet either still being on the Endpoint recv_evd_handle and request_evd_handle or not being there.
The destruction of the Endpoint during connection setup aborts connection establishment.
If the Endpoint is in the Reserved state, the Consumer shall first destroy the associated Reserved Service Point that transitions the Endpoint into the Unconnected state where the Endpoint can be destroyed. If the Endpoint is in the Passive Connection Pending state, the Consumer shall first reject the associated Connection Request that transitions the Endpoint into the Unconnected state where the Endpoint can be destroyed. If the Endpoint is in the Tentative Connection Pending state, the Consumer shall reject the associated Connection Request that transitions the Endpoint back to Provider control, and the Endpoint is destroyed as far as the Consumer is concerned.
The freeing of an Endpoint also destroys an Event Stream for each of the associated Event Dispatchers.
Use of the handle of the destroyed Endpoint in any subsequent operation except for the dat_ep_free() fails.
The operation was successful.
The ep_handle parameter is invalid.
Parameter in an invalid state. The Endpoint is in DAT_EP_STATE_RESERVED, DAT_EP_STATE_PASSIVE_CONNECTION_PENDING, or DAT_EP_STATE_TENTATIVE_CONNECTION_PENDING.
See attributes(5) for descriptions of the following attributes: