rpc_set_async_ack(3ncs) rpc_set_async_ack(3ncs)
Name
rpc_set_async_ack - set or clear asynchronous-acknowledgement mode (client only)
Syntax
#include <idl/c/rpc.h>
void rpc_$set_async_ack (state)
unsigned long state;
Arguments
state If "true" (nonzero), asynchronous-acknowledgement mode is set. If "false" (zero), synchronous-acknowledgement mode is
set.
Description
The call sets or clears asynchronous-acknowledgement mode in a client.
Synchronous-acknowledgement mode is the default. Calling with a nonzero value for state sets asynchronous-acknowledgement mode. Calling
it with a zero value for state sets synchronous-acknowledgement mode.
After a client makes a remote procedure call and receives a reply from a server, the RPC runtime library at the client acknowledges its
receipt of the reply. This "reply acknowledgement" can occur either synchronously (before the runtime library returns to the caller) or
asynchronously (after the runtime library returns to the caller).
It is generally good to allow asynchronous reply acknowledgements. Asynchronous-acknowledgement mode can save the client runtime library
from making explicit reply acknowledgements, because after a client receives a reply, it may shortly issue another call that can act as an
implicit acknowledgement.
Asynchronous-acknowledgement mode requires that an "alarm" be set to go off sometime after the remote procedure call returns. Unfortu-
nately, setting the alarm can cause two problems:
1 There may be only one alarm that can be set, and the application itself may be trying to use it.
2 If, at the time the alarm goes off, the application is blocked in a system call that is doing I/O to a "slow device" (such as
a terminal), the system call will return an error (with the EINTR errno); the application may not be coded to expect this
error. If neither of these problems exists, the application should set asynchronous-acknowledgement mode to get greater
efficiency.
Files
See Also
intro(3ncs)
rpc_set_async_ack(3ncs)