@Override protected void preWait() { this.startedWaiting = true; DM mgr = getDistributionManager(); this.statStart = mgr.getStats().startReplyWait(); // Note we do not use addMembershipListenerAndGetDistributionManagerIds // because this is the startup message and we do not yet have any // members in the dm's list. mgr.addMembershipListener(this); // Set activeMembers = mgr.addMembershipListenerAndGetDistributionManagerIds(this); // synchronized (this.members) { // for (int i = 0; i < getMembers().length; i++) { // if (!activeMembers.contains(getMembers()[i])) { // memberDeparted(getMembers()[i], false); // } // } // } }
@Override protected void preWait() { this.waiting = true; DM mgr = getDistributionManager(); this.statStart = mgr.getStats().startReplyWait(); // Note we do not use addMembershipListenerAndGetDistributionManagerIds // because this is the startup message and we do not yet have any // members in the dm's list. mgr.addMembershipListener(this); // Set activeMembers = mgr.addMembershipListenerAndGetDistributionManagerIds(this); // synchronized (this.members) { // for (int i = 0; i < getMembers().length; i++) { // if (!activeMembers.contains(getMembers()[i])) { // memberDeparted(getMembers()[i], false); // } // } // } }
protected void preWait() { waiting = true; DM mgr = getDistributionManager(); statStart = mgr.getStats().startReplyWait(); synchronized (this.members) { Set activeMembers = addListenerAndGetMembers(); processActiveMembers(activeMembers); } }
protected void preWait() { startedWaiting = true; DM mgr = getDistributionManager(); statStart = mgr.getStats().startReplyWait(); // take lock on "this" first because memberDeparted will take a lock on // "this" leading to lock inversion against other paths that take in reverse // order e.g. toString() calls from any of the "this" synced methods // [sumedh] do we need two locks in this class, or only this should do? synchronized (this) { final InternalDistributedMember[] mbrs = this.members; synchronized (mbrs) { // no need to register with MembershipListener for the case of self // execution only (#47198) if (mbrs.length > 0 && !(mbrs.length == 1 && mbrs[0] != null && mbrs[0] .equals(this.system.getDistributedMember()))) { Set<?> activeMembers = addListenerAndGetMembers(); this.listenerAdded = true; processActiveMembers(activeMembers); } } } }
long readAckStart = 0; if (stats != null) { readAckStart = stats.startReplyWait();
long readAckStart = 0; if (stats != null) { readAckStart = stats.startReplyWait();