On Tue, 16 Jun 2020 14:16:13 +0300, Steff Gladstone wrote:

>We need to capture the date and time in a GLUE and need more precision than
>the CICS variables give us.
>
There's a possible timing window in naive leap second
correction.  Suppose:
    STCK
    (a leap second occurs, adding 1 to CVTLSO)
    Programmer subtracts CVTLSO from stored TOD value
        resulting in a time value 0.99 seconds early.

If thw programmer reverses the order of operations, the
complementary hazard giving a timne 0.99 seconds in the
future exists.

This can be avoided by:
RETRY:  Copy CVTLSO
        STCK
        IF CVTLSO<>Copy GOTO RETRY
        Subtract CVTLSO from stored TOD

Does TIME macro do something similar?  It's a performance
cost of two (three?) instructions in a much-used code
path to avoid a hazard that occurs only every year or
two.  But this has caused servers to crash.

Wrapping the operations with a lock would be more costly.

Amazon, Google, (Others?) "smear" leap seconds over 24
hours to avoid this:
    
https://en.wikipedia.org/wiki/Leap_second#Workarounds_for_leap_second_problems
This requires steering the clock by 12 ppm, well within
the capability of the TOD clock, but for z/OS to freeze
CVTLSO at its current value and to adopt smearing would
be a major change from specified behavior.

(I submitted my RCF on STCKCONV.)

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to