Guardian Procedure Calls Reference Manual (G06.25+)

Guardian Procedure Calls (S)
Guardian Procedure Calls Reference Manual522629-013
14-148
SIGNALPROCESSTIMEOUT Procedure
Deadlock possibility
Consider the following:
CALL SIGNALPROCESSTIMEOUT (10000D,,,TAG);
CALL READ (REC^NUM, BUFFER, 4);
.
. ! open number of $RECEIVE.
The read causes the process to stop and wait for the system message to be
generated by timeout (assuming no other messages are expected). Timeout does
not occur because process time does not advance while the read is waiting, so a
deadlock occurs.
Message
Timeout message
When a time-list element (TLE) set by a call to the SIGNALPROCESSTIMEOUT
procedure times out, a system message -26 (process time timeout) is placed on
the $RECEIVE queue to be read by the caller. (This message is identical to the
message generated by SIGNALTIMEOUT except that the message number is
different.)
OSS Considerations
OSS processes can use this procedure and generate a system message. An OSS
signal is not generated.
Example
CALL SIGNALPROCESSTIMEOUT( VALUE , MSG, , TIMERTAG );
Related Programming Manual
For programming information about the SIGNALPROCESSTIMEOUT procedure, see
the
Guardian Programmer’s Guide.
Note. This deadlock does not happen with the SIGNALTIMEOUT procedure, which measures
elapsed time (as measured by the processor clock) rather than process execution time.