merlimat commented on pull request #10583: URL: https://github.com/apache/pulsar/pull/10583#issuecomment-840944024
> As I have mentioned earlier, if two threads are both reading and writing to a shared variable, then using the volatile keyword for that is not enough. You need to use a synchronized in that case to guarantee that the reading and writing of the variable is atomic. Reading or writing a volatile variable does not block threads reading or writing. For this to happen you must use the synchronized keyword around critical sections. The `volatile` qualifier will guarantee that other threads will read the latest value of that variable. Also note that in this case there's just 1 single thread writing it. We don't have code in there (for this variable) that reads the value, does something and writes it back. The only addition that `AtomicReference` would give is to do `compareAndSet()` on the variable reference. But we're not needing it for `lastConfirmedEntry` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org