man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: July 2014
 
 

dat_cno_free(3DAT)

Name

dat_cno_free - destroy an instance of the CNO

Synopsis

cc [ flag… ] file–ldat [ library… ] 
#include <dat/udat.h>

DAT_RETURN
    dat_cno_free (
    IN    DAT_CNO_HANDLE    cno_handle
    )

Parameters

cno_handle

Handle for an instance of the CNO

Description

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.

Return Values

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.

Usage

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.

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
MT-Level
Unsafe
Standard
uDAPL, 1.1, 1.2

See Also

dat_cno_wait(3DAT), libdat(3LIB), attributes(5)