next up previous contents
Next: 8.17 fluke_ipc_side_over_receive: reverse the Up: 8 Interprocess Communication Previous: 8.15 fluke_ipc_side_alert: send an

8.16 fluke_ipc_side_disconnect: destroy a reliable IPC connection

SYNOPSIS

void fluke_ipc_side_disconnect(void);

DESCRIPTION

This call allows either side of a reliable IPC connection to break that connection. After a disconnect, any further invocations on the channel will fail with a FLUKE_IPC_op_DISCONNECTED return code.

If the sender disconnects while the receiver is blocked in a fluke_ipc_side_receive operation, the receive operation terminates with a FLUKE_IPC_RECV_DISCONNECTED return code. The IPC parameter structure used in the receive operation will reflect any partial transfer of data or references. This is the normal way for a conversation to be terminated: the sender disconnects after sending all relevant message data, and the receiver is notified of the disconnection after it has received all the data. No information is lost when the sender disconnects in this way.

On the other hand, if the current receiver disconnects, this is considered abnormal termination of the connection, and data may be lost. If the sender keeps sending data on the connection, it will be notified of the disconnection eventually with a FLUKE_IPC_SEND_DISCONNECTED error code, but there is no guarantee of how soon this will occur, or how much information may be lost before it does. If the sender tries to reverse (``over'') the connection, then it will receive a FLUKE_IPC_OVER_DISCONNECTED error return without any data being received. If the sender eventually disconnects instead of reversing the connection, then it may never be notified that the connection was broken prematurely.

Finally, FLUKE_IPC_ACK_DISCONNECTED will be returned to a receiver that tries to acknowledge the reverse of a connection (``ack'') for which the sender has disconnected.

RELATED INFORMATION

fluke_ipc_client_connect_send, fluke_ipc_side_send, fluke_ipc_side_receive, fluke_ipc_side_over_receive, fluke_ipc_side_ack_send



Utah Flux Research Group