Package org.agrona.concurrent
Class CachedNanoClock
- java.lang.Object
-
- org.agrona.concurrent.CachedNanoClockPadding
-
- org.agrona.concurrent.CachedNanoClockValue
-
- org.agrona.concurrent.CachedNanoClock
-
- All Implemented Interfaces:
NanoClock
public class CachedNanoClock extends CachedNanoClockValue implements NanoClock
ANanoClock
that caches a timestamp which can be updated withupdate(long)
.Instances are threadsafe with the read being volatile.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.util.concurrent.atomic.AtomicLongFieldUpdater<CachedNanoClockValue>
FIELD_UPDATER
(package private) byte
p064
(package private) byte
p065
(package private) byte
p066
(package private) byte
p067
(package private) byte
p068
(package private) byte
p069
(package private) byte
p070
(package private) byte
p071
(package private) byte
p072
(package private) byte
p073
(package private) byte
p074
(package private) byte
p075
(package private) byte
p076
(package private) byte
p077
(package private) byte
p078
(package private) byte
p079
(package private) byte
p080
(package private) byte
p081
(package private) byte
p082
(package private) byte
p083
(package private) byte
p084
(package private) byte
p085
(package private) byte
p086
(package private) byte
p087
(package private) byte
p088
(package private) byte
p089
(package private) byte
p090
(package private) byte
p091
(package private) byte
p092
(package private) byte
p093
(package private) byte
p094
(package private) byte
p095
(package private) byte
p096
(package private) byte
p097
(package private) byte
p098
(package private) byte
p099
(package private) byte
p100
(package private) byte
p101
(package private) byte
p102
(package private) byte
p103
(package private) byte
p104
(package private) byte
p105
(package private) byte
p106
(package private) byte
p107
(package private) byte
p108
(package private) byte
p109
(package private) byte
p110
(package private) byte
p111
(package private) byte
p112
(package private) byte
p113
(package private) byte
p114
(package private) byte
p115
(package private) byte
p116
(package private) byte
p117
(package private) byte
p118
(package private) byte
p119
(package private) byte
p120
(package private) byte
p121
(package private) byte
p122
(package private) byte
p123
(package private) byte
p124
(package private) byte
p125
(package private) byte
p126
(package private) byte
p127
-
Fields inherited from class org.agrona.concurrent.CachedNanoClockValue
timeNs
-
Fields inherited from class org.agrona.concurrent.CachedNanoClockPadding
p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015, p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031, p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047, p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063
-
-
Constructor Summary
Constructors Constructor Description CachedNanoClock()
Create a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
advance(long nanos)
Advance the value of the timestamp in with release ordered semantics.long
nanoTime()
The number of ticks in nanoseconds the clock has advanced since starting.void
update(long timeNs)
Update the value of the timestamp with release memory ordered semantics.
-
-
-
Field Detail
-
FIELD_UPDATER
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<CachedNanoClockValue> FIELD_UPDATER
-
p064
byte p064
-
p065
byte p065
-
p066
byte p066
-
p067
byte p067
-
p068
byte p068
-
p069
byte p069
-
p070
byte p070
-
p071
byte p071
-
p072
byte p072
-
p073
byte p073
-
p074
byte p074
-
p075
byte p075
-
p076
byte p076
-
p077
byte p077
-
p078
byte p078
-
p079
byte p079
-
p080
byte p080
-
p081
byte p081
-
p082
byte p082
-
p083
byte p083
-
p084
byte p084
-
p085
byte p085
-
p086
byte p086
-
p087
byte p087
-
p088
byte p088
-
p089
byte p089
-
p090
byte p090
-
p091
byte p091
-
p092
byte p092
-
p093
byte p093
-
p094
byte p094
-
p095
byte p095
-
p096
byte p096
-
p097
byte p097
-
p098
byte p098
-
p099
byte p099
-
p100
byte p100
-
p101
byte p101
-
p102
byte p102
-
p103
byte p103
-
p104
byte p104
-
p105
byte p105
-
p106
byte p106
-
p107
byte p107
-
p108
byte p108
-
p109
byte p109
-
p110
byte p110
-
p111
byte p111
-
p112
byte p112
-
p113
byte p113
-
p114
byte p114
-
p115
byte p115
-
p116
byte p116
-
p117
byte p117
-
p118
byte p118
-
p119
byte p119
-
p120
byte p120
-
p121
byte p121
-
p122
byte p122
-
p123
byte p123
-
p124
byte p124
-
p125
byte p125
-
p126
byte p126
-
p127
byte p127
-
-
Method Detail
-
nanoTime
public long nanoTime()
The number of ticks in nanoseconds the clock has advanced since starting.This method can only be used to measure elapsed time and is not related to any other notion of system or wall-clock time. The value returned represents nanoseconds since some fixed but arbitrary origin time (perhaps in the future, so values may be negative). The same origin is used by all invocations of this method in an instance of a Java virtual machine; other virtual machine instances are likely to use a different origin.
-
update
public void update(long timeNs)
Update the value of the timestamp with release memory ordered semantics.- Parameters:
timeNs
- value to update the timestamp.
-
advance
public void advance(long nanos)
Advance the value of the timestamp in with release ordered semantics.- Parameters:
nanos
- to advance the timestamp.
-
-