make lastRead be an AtomicLong and use lazySet