cc [ flag... ] file... -ldat [ library... ] #include <dat/udat.h> DAT_RETURN dat_cno_free ( IN DAT_CNO_HANDLE cno_handle )
cno_handle Handle for an instance of the CNO
The dat_cno_free() function destroys a specified instance of the CNO.
A CNO cannot be deleted while it is referenced by an Event Dispatcher or while a thread is blocked on it.
DAT_SUCCESS The operation was successful.
DAT_INVALID_HANDLE The cno_handle() parameter is invalid.
DAT_INVALID_STATE Parameter in an invalid state. CNO is in use by an EVD instance or there is a thread blocked on it.
If there is a thread blocked in dat_cno_wait(3DAT), the Consumer can do the following steps to unblock the waiter:
• Create a temporary EVD that accepts software events. It can be created in advance.
• For a CNO with the waiter, attach that EVD to the CNO and post the software event on the EVD.
• This unblocks the CNO.
• Repeat for other CNOs that have blocked waiters.
• Destroy the temporary EVD after all CNOs are destroyed and the EVD is no longer needed.
See attributes(5) for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|
|Interface Stability||Standard: uDAPL, 1.1, 1.2|
dat_cno_wait(3DAT), libdat(3LIB), attributes(5)