The rsm_memseg_get_pollfd() and rsm_memseg_release_pollfd() functions provide an alternative to rsm_intr_signal_wait(3RSM); the
waiting process may multiplex event waiting using the poll(2) function after first obtaining a poll descriptor using rsm_memseg_get_pollfd(). The
descriptor may subsequently be released using rsm_memseg_release_pollfd().
As a result of a call rsm_memseg_get_pollfd(), the specified pollfd structure is initialized with a descriptor for the specified segment (memseg) and the event generated by rsm_intr_signal_post(3RSM). Either an export segment handle or an import segment handle may be type cast to a void pointer. The pollfd argument may subsequently be used with the poll(2) function to wait for the event. If memseg references an export segment, the segment must be currently published. If memseg references an import segment, the segment must be
connected.
The rsm_memseg_reslease_pollfd() function decrements the reference count of the pollfd structure associated with the specified segment. A segment unpublish, destroy or unmap operation will fail if the reference count is non-zero.
|