Guardian Procedure Calls Reference Manual (G06.25+)
Guardian Procedure Calls (R)
Guardian Procedure Calls Reference Manual—522629-013
13-42
RECEIVEINFO Procedure
(Superseded by FILE_GETRECEIVEINFO_
Considerations
•
Process ID and RECEIVEINFO
The 4-word process ID returned by RECEIVEINFO following receipt of a process
open, close, CONTROL, SETMODE, SETPARAM, RESETSYNC, or
CONTROLBUF system message, or a data message, identifies the process
associated with the operation.
•
When the high-order three words of process ID are zero
The high-order three words of the process ID are zero following the receipt of
system messages other than process open, close, CONTROL, SETMODE,
RESETSYNC, and CONTROLBUF.
•
Synthetic process ID
If HIGHREQUESTERS is enabled for the calling process (either because the
?HIGHREQUESTERS flag is set in the program file or because the caller used
FILE_OPEN_ to open $RECEIVE) and the last message was sent by a high-PIN
process, then the returned process ID is as described above except that the value
of the PIN is 255. This form of the process ID is referred to as a
synthetic
process ID. It is not a full identification of the process but it is normally sufficient
for distinguishing, for example, one requester from another requester. Refer to the
Guardian Programmer’s Guide for further details.
•
Remote opener with a long process file name
If the calling process used FILE_OPEN_ to open $RECEIVE and did not request to
receive C-series format messages, and if the last message read from $RECEIVE
is from a remote process that has a process name consisting of more than five
characters, then the value of
process-id returned by RECEIVEINFO is
undefined.
•
Sync ID definition
A sync ID is a doubleword, unsigned integer. Each process file that is open has its
own sync ID. Sync IDs are not part of the message data; rather, the sync ID value
associated with a particular message is obtained by the receiver of a message by
calling the RECEIVEINFO procedure. A file’s sync ID is set to zero at file open
and when the RESETSYNC procedure is called for that file (RESETSYNC can be
called directly or indirectly through the CHECKMONITOR procedure). Refer to the
Guardian Programmer’s Guide for information about checkpointing.
When a request is sent to a process (that is, CONTROL, CONTROLBUF, close,
open, SETMODE, WRITE, or WRITEREAD to a process file), the requestor’s sync
ID is incremented by 1 just before to the request is sent. (Therefore, a process’s
first sync ID subsequent to an open has a value of 0.)