Clear Lock Value (CLRLKVAL)

Instruction Syntax

Bound Program Access
Built-in number for CLRLKVAL is 678.
CLRLKVAL (                                                                      
           addr    : address of a signed binary(8) value  (has                   
                      alignment restrictions - see description below)           
           new_val : signed binary(8) value                                       
)                                                                               

Description:

The value pointed to by addr is set to the new_val value.

The first operand must be 8-byte aligned. Failure to have the first operand aligned properly will not be detected, but the results of the instruction are undefined when this occurs.

This operation is storage synchronizing. When a thread performs the CLRLKVAL instruction, shared space data values previously written by that thread will be visible to other threads at their next synchronizing actions. The shared space data values seen by those other threads will be at least as current as what was written by the thread performing the CLRLKVAL.

The CLRLKVAL instruction is designed specifically for implementation of low-level locking protocols. For correct storage synchronization, the CLRLKVAL instruction is commonly used in conjunction with the CHKLKVAL instruction.

See Storage Synchronization Concepts for additional information on storage synchronization.

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
    • 1044 Partial System Object Damage
  • 1C Machine-Dependent
    • 1C03 Machine Storage Limit Exceeded
  • 20 Machine Support
    • 2002 Machine Check
    • 2003 Function Check
  • 22 Object Access
    • 2201 Object Not Found
    • 2202 Object Destroyed
    • 2203 Object Suspended
    • 2208 Object Compressed
    • 220B Object Not Available
  • 24 Pointer Specification
    • 2401 Pointer Does Not Exist
    • 2402 Pointer Type Invalid
  • 2C Program Execution
    • 2C04 Branch Target Invalid
  • 36 Space Management
    • 3601 Space Extension/Truncation
  • 44 Protection Violation
    • 4401 Object Domain or Hardware Storage Protection Violation
    • 4402 Literal Values Cannot Be Changed