Wait On Time (WAITTIME)

Instruction Syntax

Op Code (Hex) Operand 1
0349 Wait template
Operand 1: Character(16) scalar.

Bound Program Access
Built-in number for WAITTIME is 66.
WAITTIME (
          wait_template   : address
)

Description:

This instruction causes the thread to wait for a specified time interval. The current thread is placed in wait state for the amount of time specified by the wait template in accordance with the specified wait options.

The format of the wait template for operand 1 is:

Offset  
Dec Hex Field Name Data Type and Length
0 0 Wait time interval Char(8)
8 8 Wait options Char(2)

8

8

  • Access state control for entering wait

    0 =
    Do not modify access state
    1 =
    Modify access state

  • Bit 0

8

8

  • Access state control for leaving wait

    0 =
    Do not modify access state
    1 =
    Modify access state

  • Bit 1

8

8

  • Multiprogramming level (MPL) control during wait

    0 =
    Do not remain in current MPL set
    1 =
    Remain in current MPL set

  • Bit 2

8

8

  • Asynchronous signals processing option

    0 =
    Do not allow asynchronous signal processing during wait
    1 =
    Allow asynchronous signal processing during wait

  • Bit 3

8 8
  • Reserved (binary 0)
  • Bits 4-15
10 A Reserved (binary 0) Char(6)

16

10

--- End ---

 

See Standard Time Format for additional information on the format of the wait time interval.

The access state control options control whether the process access group (PAG) will be explicitly transferred between main and auxiliary storage when entering and leaving a wait as a result of execution of this instruction. Specification of modify access state requests that the PAG be purged from main to auxiliary storage for entering a wait and requests that the PAG be transferred from auxiliary to main storage for leaving a wait. Specification of do not modify access state requests that the PAG not be explicitly transferred between main and auxiliary storage as a result of executing this instruction.

The access state of the PAG is modified when entering the wait if the process is not multi-threaded (i.e., the waiting thread is the only thread in the process), if the process' instruction wait initiation access state control attribute specifies allow access state modification, if the access state control for entering wait option specifies modify access state, and if the MPL control during wait option specifies do not remain in current MPL set.

The multiprogramming level (MPL) control during wait option controls whether the thread will be removed from the current MPL set or remain in the current MPL set when the thread enters a wait as a result of executing this instruction.

When the MPL control during wait option specifies remain in current MPL set and the access state control for entering wait option specifies do not modify access state, the machine will check the wait time requested. If the wait time requested is less than an implementation-defined limit (which will not exceed 2 seconds), the thread will remain in the current MPL. If the wait time requested is greater than this limit, the MPL control during wait option is ignored and the thread is automatically removed from the MPL at the beginning of the wait. The automatic removal does not change or affect the total wait time specified for the thread in the wait time interval.

The asynchronous signals processing option controls the action to be taken if an asynchronous signal is pending or received while in wait. If an asynchronous signal that is not blocked or ignored is generated for the thread and the asynchronous signals processing option indicates allow asynchronous signals processing during wait, the wait will be terminated and an asynchronous signal terminated MI wait (hex 4C01) exception is signaled. Otherwise, when the asynchronous signals processing option indicates do not allow asynchronous signals processing during wait, the thread remains in the wait for the amount of time specified by the wait time interval.

While the thread is in wait state it may be interrupted for events unless the thread is masked.

A template value invalid (hex 3801) exception is signalled if any of the reserved fields are not all binary zeroes.

Authorization Required

  • None

Lock Enforcement

  • None

Exceptions

  • 06 Addressing
    • 0601 Space Addressing Violation
    • 0602 Boundary Alignment
    • 0603 Range
  • 08 Argument/Parameter
    • 0801 Parameter Reference Violation
  • 10 Damage Encountered
    • 1004 System Object Damage State
    • 1005 Authority Verification Terminated Due to Damaged Object
    • 1044 Partial System Object Damage
  • 20 Machine Support
    • 2002 Machine Check
    • 2003 Function Check
  • 22 Object Access
    • 2202 Object Destroyed
    • 2203 Object Suspended
    • 2207 Authority Verification Terminated Due to Destroyed Object
    • 2208 Object Compressed
    • 220B Object Not Available
  • 24 Pointer Specification
    • 2401 Pointer Does Not Exist
    • 2402 Pointer Type Invalid
  • 2E Resource Control Limit
    • 2E01 User Profile Storage Limit Exceeded
  • 32 Scalar Specification
    • 3201 Scalar Type Invalid
    • 3202 Scalar Attributes Invalid
    • 3203 Scalar Value Invalid
  • 36 Space Management
    • 3601 Space Extension/Truncation
  • 38 Template Specification
    • 3801 Template Value Invalid
  • 44 Protection Violation
    • 4401 Object Domain or Hardware Storage Protection Violation
  • 4C Signals Management
    • 4C01 Asynchronous Signal Terminated MI Wait