cc [ flag… ] file… –ldat [ library… ] #include <dat/udat.h> DAT_RETURN dat_cno_free ( IN DAT_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.
The operation was successful.
The cno_handle() parameter is invalid.
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: