Use this system macro to yield control of the processor and allow
processing of other entries. The entry is placed on the specified
processor list.
Required Authorizations
|
Key0
| Restricted
| System
| Common Storage
|
| X
|
|
|
Format
- label
- A symbolic name assigned to the macro statement.
- READY
- Assigns the entry to the ready list. This is the highest
priority list available to which the entry can be assigned. Assigning
the entry to this list prevents any new work from being processed by this
I-stream before the entry is dispatched again. Any entries that are
already on the ready list will be allowed to process.
- VCT
- Assigns the entry to the virtual file access count (VCT)
list. This list is used to delay the processing of an entry until
all work on the ready list has been processed. Any entry on the VCT
list is interleaved with new work. Entries on the VCT list will still
be processed even when the system has stopped processing new work because a
shutdown condition (low resource condition) has occurred.
Entry Requirements
R9 must contain the address of the entry control block (ECB) that is being
processed.
Return Conditions
- Control returns to the next sequential instruction (NSI).
- The contents of register 14 (R14) and register 15 (R15) are
unknown. The contents of all other registers are preserved across this
macro call.
- The condition code is not saved across this macro call.
Programming Considerations
- Use of this macro should be limited; excessive use macro will cause a
low-core condition in the real-time system.
- This macro can be run on any I-stream.
- After this macro runs, the ECB is added to the specified CPU list.
Accordingly, control can be transferred for processing of another
entry.
- Records must not be held by the ECB when the YIELDC macro is
issued. If the entry that is issuing YIELDC is holding a record, a
number of entries (also holding storage blocks) can be queued for that
record. This can lead to a lockout condition.
- When you run this macro, the 500-millisecond program timeout is
reset.
- The macro trace collection for YIELDC compresses multiple occurrences of
YIELDC into two entries. This prevents programs that are issuing
successive YIELDC macros from filling up the macro trace table by keeping only
the first and last YIELDC trace information. In addition to the normal
macro trace information, the first YIELDC trace entry contains a count of
suppressed entries.
- When it is run during system cycle down, this macro is handled like a
DEFRC macro by the TPF system and the entry is placed on the defer
list.
Examples
- You call YIELDC in order to add the ECB thread to the VCT list.
YIELDC VCT
The output from YIELDC VCT will look similar to the following:
YIELDC VCT
00CBB000 * YIELDC QPN2 +0AA
050C0000 003880AC 003B 0026 AE405F11 6760BE09
- You call YIELDC in order to add the ECB thread to the ready list
YIELDC READY
The output from YIELDC READY will look similar to the following:
YIELDC READY
006D9000 * YIELDC QPN2 +1CA
050C0000 003891CC 003B 0026 AE405F1B D887CA00
- You call YIELDC in order to add the ECB thread to the VCT list; it
loops 5 times:
YIELDC VCT
The output from YIELDC VCT will look similar to the following:
YIELDC VCT
0072A000 * YIELDC QPN2 +18E 000004 ENTRIES SUPPRESSED
050C0000 0038A190 003B 0026 AE405F2B 5414AE02
- You call YIELDC in order to add the ECB thread to the ready list; it
loops twice:
YIELDC READY
The output from YIELDC READY will look similar to the following:
YIELDC READY
004054A0 IS01 YIELDC QPN2 +1AA 000001 ENTRIES SUPPRESSED
050C2000 0038C1AC 003B 0026 AE41633E AC6F9C08