Github user michaelandrepearce commented on the issue:

    https://github.com/apache/activemq-artemis/pull/2484
  
    > > > CursorIterator:hasNext
    > > 
    > > 
    > > Im bit concerned with this doing a dirty read, as this isnt something 
that is trigger an ascyn action, in actual fact the hasNext is purposefully 
synchronized. (especially as recently some concurrency issues have been found 
in paging (e.g. howards current pr) im sensitive to us being too hap hazard 
here.
    > 
    > I don't get why isPaging() in hasNext() needs to be consistent. The 
paging status can change after isPaging() unless we readlock isPaging() and 
subsequent operations. Without readlock, a) if isPaging() returns true, but the 
other thread set it to false, subsequent next() call reads no data and returns 
null; b) if isPaging() returns false, but the other thread set it to true(a new 
message coming), deliverAsync would be called later anyway.
    
    if thats the case then the sync method could be removed also, though i 
think @clebertsuconic has given some further info to why this is like it is.


---

Reply via email to