# What does it mean by “consistent view of memory” in lock-free dequeue implementation?

I am currently reading this paper by Chales-Lev. This paper explain an implementation of work-stealing dequeue. The part where I don't understand is in the implementation of steal operation.

public Object steal() {
11 long t = this.top;
12 long b = this.bottom;
13 CircularArray a = this.activeArray;
14 long size = b - t;
15 if (size <= 0) return Empty;
16 Object o = a.get(t);
17 if (! casTop(t, t+1))
18 return Abort;
19 return o;
}


I am confused by this sentence on page 3 regarding this implementation:

Note that because top is read before bottom, it is guaranteed that the values read represent a consistent view of the memory. Specifically, it implies that bottom and top indeed had their observed values when bottom was read at Line 12.