11.7.2 TPEBLOCK and TPGOTSIG Errors
The TPEBLOCK
and TPGOTSIG
error codes
may be returned at the request or the reply end of a message and,
as a result, can be returned for all communication calls.
The system returns TPEBLOCK
when a blocking
condition exists and the process sending a request (synchronously
or asynchronously) indicates, by setting its
flags
parameter to TPPNOBLOCK
,
that it does not want to wait on a blocking condition. A blocking
condition can exist when a request is being sent if, for example,
all the system queues are full.
When tpcall()
indicates a no blocking condition, only the sending part of the communication is affected. If a call successfully sends a request, the system does not return TPEBLOCK
, regardless of any blocking situation that may exist while the call waits for the reply.
The system returns TPEBLOCK
for tpgetrply()
when a call is made with flags
set to TPNOBLOCK
and a blocking condition is encountered while tpgetrply()
is awaiting the reply. This may occur, for example, if a message is not currently available.
The TPGOTSIG
error indicates an interruption of a system call by a signal; this situation is not actually an error condition. If the flags
parameter for the communication functions is set to TPSIGRSTRT
, the calls do not fail and the system does not return the TPGOTSIG
error code in tperrno(5)
.
Parent topic: General Communication Call Errors