General
Application areas: | Intertask communication (ITC); see "Intertask communication (ITC)"Communication; see "Communication (programs, users, system)" | |
Macro type: | Type R; see "R-type macros" |
Macro description
By means of CLCOM, the calling program terminates its participation in ITC (by deleting its ITC name from the list of participants).
Macro format and description of operands
CLCOM |
NOKEEP / KEEP / (1) |
NOKEEP
Specifies that the receive queue is dissolved. Any messages still in the queue can no longer be requested.
KEEP
Specifies that the receive queue is retained. Outstanding messages in the receive queue may still be requested after the CLCOM call has been issued.
(1)
Register R1 contains the start address of the operand field. This operand field has a length of 4 bytes and starts at a word boundary; its contents are as follows:
X'04000000' | corresponds to NOKEEP or |
Functional description
By means of CLCOM, the calling program's task terminates its participation in intertask communication (ITC). Once a program has called CLCOM NOKEEP, it can neither send nor receive any more messages. Messages still in its receive queue are deleted.
If CLCOM KEEP is specified, the receive queue is not deleted. The program may still send messages and also request any that have already arrived. Once CLCOM KEEP is invoked, no new messages will be transferred. If there were no messages in the receive queue at the time CLCOM KEEP was called, then the system proceeds as if CLCOM NOKEEP had been specified.
The call CLCOM NOKEEP causes the system to delete the ITC name of the calling program from the list of participants. The ITC name can then be used again. If desired, the calling program may join ITC again (under any ITC name that has not already been assigned). When the last ITC participant issues the CLCOM NOKEEP call, ITC is terminated (the system deletes the ITC table).
Note
If the NOKEEP operand is omitted (i.e. the default value is to apply), but a comment is written in this line, then the system executes the CLCOM KEEP function.
Return information and error flags
R15:
+---------------+ | | | | | | | | | | | |a|a| +---------------+
A return code relating to the execution of the CLCOM macro is transferred in the rightmost byte of register R15.
X'aa' | Meaning |
X'00' | ITC participation is terminated, and the receive queue is dissolved |
X'04' | Operand error. ITC participation continues |
X'08' | The task of the calling program is not an ITC participant |
X'0C' | There are still messages in the receive queue. ITC participation still has to be terminated |