RECEIVEMAIL [ MPE/iX Intrinsics Reference Manual ] MPE/iX 5.0 Documentation
MPE/iX Intrinsics Reference Manual
RECEIVEMAIL
NM and CM callable.
Receives mail from another process. Process handling (PH) capability is
required.
Syntax
______________________________________________________
| |
| U16 I16V UDS U16V |
| mailstatus:=RECEIVEMAIL(pin,location,waitflag);|
______________________________________________________
Functional Return
mailstatus 16-bit unsigned integer (assigned functional
return)
Returns one of the following values:
Value Meaning
0 Mailbox empty and waitflag bit (15:1)=0.
1 No message collected, the mailbox contained outgoing
mail from the receiving process.
2 Message collected successfully.
3 Error occurred because an invalid pin was specified or
a bounds check failed.
4 Request denied, waitflag specified that the receiving
process wait for mail if the mailbox is empty, but the
other process sharing the mailbox is already
suspended, waiting for mail. If both processes were
suspended, neither could activate the other, and they
may be deadlocked.
Parameters
pin 16-bit signed integer by value (required)
The process sending the mail. If you specify a
child process, pin is the process identification
number (PIN) of that process. If you specify a
parent process, pin is zero.
location user-defined structure (required)
The buffer where the message is written.
waitflag 16-bit unsigned integer by value (required)
The action to be taken if the mailbox is empty.
This is determined by the setting of bit (15:1),
which has the following settings:
Value Meaning
0 Return immediately to the calling process.
1 Wait until incoming mail is ready for collection.
Operation Notes
The RECEIVEMAIL intrinsic lets a process collect mail transmitted to it
by its parent or a child. If the mailbox for the receiving process is
empty, the action taken depends on the waitflag parameter specified in
the RECEIVEMAIL intrinsic call. If the mailbox is currently in use by
another process, RECEIVEMAIL waits until the mailbox is free before
accessing it.
Condition Codes
CCE (2) Request granted. The mail was collected (value 2
is returned to mailstatus) or the mail was not
collected because the mailbox contained outgoing
mail from the receiving process (value 1 is
returned to mailstatus).
CCG (0) Request denied. An illegal pin parameter (value 3
is returned to mailstatus).
CCL (1) Request denied. The location parameter does not
allow write access on the stack address (value 3 is
returned to mailstatus) or because both sending and
receiving processes are waiting for incoming mail,
causing a deadlock (value 4 is returned to
mailstatus).
Related Information
Intrinsics None
Commands None
Manuals Interprocess Communication Programmer's Guide
(32650-90019)
MPE/iX 5.0 Documentation