public boolean dispatchListenerEvents(EntryEventImpl event) throws InterruptedException { // note that we don't synchronize on the RE before dispatching // events event.invokeCallbacks(event.getRegion(), event.inhibitCacheListenerNotification(), false); return true; }
public boolean dispatchListenerEvents(EntryEventImpl event) throws InterruptedException { // note that we don't synchronize on the RE before dispatching // events event.invokeCallbacks(event.getRegion(), event.inhibitCacheListenerNotification(), false); return true; }
public void destroyRecoveredEntry(Object key) { EntryEventImpl event = EntryEventImpl.create( this, Operation.LOCAL_DESTROY, key, null, null, false, getMyId(), false); try { event.inhibitCacheListenerNotification(true); mapDestroy(event, true, false, null, false, true); } finally { event.release(); } } public boolean lruLimitExceeded() {
public void destroyRecoveredEntry(Object key) { EntryEventImpl event = EntryEventImpl.create( this, Operation.LOCAL_DESTROY, key, null, null, false, getMyId(), false); try { event.inhibitCacheListenerNotification(true); mapDestroy(event, true, false, null, false, true); } finally { event.release(); } } public boolean lruLimitExceeded() {
@edu.umd.cs.findbugs.annotations.SuppressWarnings(value="IMSE_DONT_CATCH_IMSE") public boolean dispatchListenerEvents(final EntryEventImpl event) throws InterruptedException { final LocalRegion rgn = event.getRegion(); if (event.callbacksInvoked()) { return true; } // don't wait for certain events to reach the head of the queue before // dispatching listeners. However, we must not notify the gateways for // remote-origin ops out of order. Otherwise the other systems will have // inconsistent content. event.setCallbacksInvokedByCurrentThread(); if (logger.isDebugEnabled()) { logger.debug("{} dispatching event {}", this, event); } // All the following code that sets "thr" is to workaround // spurious IllegalMonitorStateExceptions caused by JVM bugs. try { // call invokeCallbacks while synced on RegionEntry event.invokeCallbacks(rgn, event.inhibitCacheListenerNotification(), false); return true; } finally { if (isRemoved() && !isTombstone() && !event.isEvicted()) { // Phase 2 of region entry removal is done here. The first phase is done // by the RegionMap. It is unclear why this code is needed. ARM destroy // does this also and we are now doing it as phase3 of the ARM destroy. removePhase2(); rgn.getRegionMap().removeEntry(event.getKey(), this, true, event, rgn, rgn.getIndexUpdater()); } } }
event.invokeCallbacks(rgn, event.inhibitCacheListenerNotification(), false); return true;
event.inhibitCacheListenerNotification(true); owner.recordEvent(event); if (inTokenMode && !duringRI) { event.inhibitCacheListenerNotification(true);
event.inhibitCacheListenerNotification(true); owner.recordEvent(event); if (inTokenMode && !duringRI) { event.inhibitCacheListenerNotification(true);