@Override
public void collect(int youngTarget, int allowedTimeInMs) {
+ // Flush listener registrations to prevent the collector from trashing
+ // listeners that are still queued up waiting to be registered.
+ queryProcessor.listening.sync();
+
long start = System.nanoTime();
// Refresh current size
} else {
+ entry.pruneParentSet();
support.setLevel(entry, parent.getLevel() + 1);
}
}
}
- if(queryProcessor.hasListenerAfterDisposing(entry)) {
+ if(queryProcessor.listening.hasListenerAfterDisposing(entry)) {
if((status & CacheEntry.HAS_BEEN_BOUND) == 0) {
queryProcessor.boundQueries++;
entry.setGCStatusFlag(CacheEntry.HAS_BEEN_BOUND, true);
}
private boolean tryCollect(CacheEntry entry) {
- if (!queryProcessor.hasListenerAfterDisposing(entry))
+ if (!queryProcessor.listening.hasListenerAfterDisposing(entry))
if(entry.shouldBeCollected()) {
queryProcessor.removeQuery(entry);
support.remove();