/** * Undeploys given class loader. * * @param ldr Class loader to undeploy. * @param ctx Grid cache context. */ public void onUndeploy(final ClassLoader ldr, final GridCacheContext<K, V> ctx) { assert ldr != null; if (log.isDebugEnabled()) log.debug("Received onUndeploy() request [ldr=" + ldr + ", cctx=" + cctx + ']'); synchronized (undeploys) { List<CA> queue = undeploys.get(ctx.name()); if (queue == null) undeploys.put(ctx.name(), queue = new ArrayList<>()); queue.add(new CA() { @Override public void apply() { onUndeploy0(ldr, ctx); } }); } // Unwind immediately for local and replicate caches. // We go through preloader for proper synchronization. if (ctx.isLocal()) ctx.preloader().unwindUndeploys(); }
/** * */ private void onLeft() { for (CacheGroupContext grp : cctx.cache().cacheGroups()) { if (grp.isLocal()) continue; grp.preloader().unwindUndeploys(); cctx.exchange().exchangerUpdateHeartbeat(); } }
/** * Undeploys given class loader. * * @param ldr Class loader to undeploy. * @param ctx Grid cache context. */ public void onUndeploy(final ClassLoader ldr, final GridCacheContext<K, V> ctx) { assert ldr != null; if (log.isDebugEnabled()) log.debug("Received onUndeploy() request [ldr=" + ldr + ", cctx=" + cctx + ']'); synchronized (undeploys) { List<CA> queue = undeploys.get(ctx.name()); if (queue == null) undeploys.put(ctx.name(), queue = new ArrayList<>()); queue.add(new CA() { @Override public void apply() { onUndeploy0(ldr, ctx); } }); } // Unwind immediately for local and replicate caches. // We go through preloader for proper synchronization. if (ctx.isLocal()) ctx.preloader().unwindUndeploys(); }
/** * */ private void onLeft() { for (CacheGroupContext grp : cctx.cache().cacheGroups()) { if (grp.isLocal()) continue; grp.preloader().unwindUndeploys(); cctx.exchange().exchangerUpdateHeartbeat(); } cctx.mvcc().removeExplicitNodeLocks(exchId.nodeId(), exchId.topologyVersion()); }