diff --git a/src/ca/CAref.html b/src/ca/CAref.html index d2c00c0e4..240a7a0ff 100644 --- a/src/ca/CAref.html +++ b/src/ca/CAref.html @@ -1551,41 +1551,36 @@ in the server.

Connection Management

-

Application programs should assume that CA server may be restarted, and -that network connectivity is transient. When you create a CA channel it's +

Application programs should assume that CA servers may be restarted, and +that network connectivity is transient. When you create a CA channel its initial connection state will most commonly be disconnected. If the Process Variable's server is available the library will immediately initiate the necessary actions to make a connection with it. Otherwise, the client library -will monitor the state of servers on the network and immediately connect or -reconnect with the process variable's server when it becomes available.

+will monitor the state of servers on the network and connect or reconnect +with the process variable's server as it becomes available. After the channel +connects the application program can freely perform IO operations through the +channel, but should expect that the channel might disconnect at any time due +to network connectivity disruptions or server restarts.

-

Two methods may be used to determine if a channel has connected: the -application program can block in ca_pend_io, or the application program can +

Three methods can be used to determine if a channel is connected: the +application program might call ca_state +to obtain the current connection state, block in ca_pend_io until the channel connects, or install a connection callback handler when it calls ca_create_channel. The ca_pend_io approach is best suited to simple -command line programs with a short runtime duration, and the connection -callback method is best suited to toolkit components with a long runtime -duration. If a connection state change call back function is not -installed when ca_create_channel is called (if a nil function -pointer is supplied) then the application program must wait for -successful status from ca_pend_io -prior to using the channel for the first time. Otherwise, if a connection -state change call back function is supplied, then one of the -arguments to this function distinguishes between connect and disconnect -events, and ca_pend_io will not -block for the channel to connect. The user's connection state change -function will be run immediately from within ca_state is appropriate +only in programs that prefer to poll for connection state changes instead of +opting for asynchronous notification. The ca_pend_io function +blocks only for channels created specifying a nill connection handler +callback function. The user's connection state change function will be run +immediately from within ca_create_channel if the CA client and -the server are both hosted within the same address space (within the same +CA server are both hosted within the same address space (within the same process).

-

Once the channel connects the application program can freely perform IO -operations through the channel, but it should expect that the channel might -disconnect at any time due to network connectivity disruptions or server -restarts.

-

Thread Safety and Preemptive Callback to User Code