public boolean isCoordinator() { return view == null ? false : getLocalMember(false).equals( getCoordinator()); }
@Override public void memberDisappeared(final Member member) { super.memberDisappeared(member); membershipChanged(); installViewWhenStable(); }
private void installViewWhenStable() { int stableCount = 0; while (stableCount < 10) { if (membershipChanged.compareAndSet(true, false)) { stableCount = 0; } else { stableCount++; } try { TimeUnit.MILLISECONDS.sleep(250); } catch (final InterruptedException e) { Thread.currentThread().interrupt(); } } final Member[] members = getMembers(); final Member[] view = new Member[members.length+1]; System.arraycopy(members, 0, view, 0, members.length); view[members.length] = getLocalMember(false); Arrays.sort(view, AbsoluteOrder.comp); if (Arrays.equals(view, this.view)) { return; } this.view = view; viewChange(view); }
@Override public void start(int svc) throws ChannelException { super.start(svc); installViewWhenStable(); }
private void installViewWhenStable() { int stableCount = 0; while (stableCount < 10) { if (membershipChanged.compareAndSet(true, false)) { stableCount = 0; } else { stableCount++; } try { TimeUnit.MILLISECONDS.sleep(250); } catch (final InterruptedException e) { Thread.currentThread().interrupt(); } } final Member[] members = getMembers(); final Member[] view = new Member[members.length+1]; System.arraycopy(members, 0, view, 0, members.length); view[members.length] = getLocalMember(false); Arrays.sort(view, AbsoluteOrder.comp); if (Arrays.equals(view, this.view)) { return; } this.view = view; viewChange(view); }
@Override public void start(int svc) throws ChannelException { super.start(svc); installViewWhenStable(); }
private void installViewWhenStable() { int stableCount = 0; while (stableCount < 10) { if (membershipChanged.compareAndSet(true, false)) { stableCount = 0; } else { stableCount++; } try { TimeUnit.MILLISECONDS.sleep(250); } catch (final InterruptedException e) { Thread.currentThread().interrupt(); } } final Member[] members = getMembers(); final Member[] view = new Member[members.length+1]; System.arraycopy(members, 0, view, 0, members.length); view[members.length] = getLocalMember(false); Arrays.sort(view, AbsoluteOrder.comp); if (Arrays.equals(view, this.view)) { return; } this.view = view; viewChange(view); }
@Override public void memberDisappeared(final Member member) { super.memberDisappeared(member); membershipChanged(); installViewWhenStable(); }
public boolean isCoordinator() { return view == null ? false : getLocalMember(false).equals( getCoordinator()); }
@Override public void start(int svc) throws ChannelException { super.start(svc); installViewWhenStable(); }
private void installViewWhenStable() { int stableCount = 0; while (stableCount < 10) { if (membershipChanged.compareAndSet(true, false)) { stableCount = 0; } else { stableCount++; } try { MILLISECONDS.sleep(250); } catch (final InterruptedException e) { Thread.currentThread().interrupt(); } } final Member[] members = getMembers(); final Member[] view = new Member[members.length+1]; System.arraycopy(members, 0, view, 0, members.length); view[members.length] = getLocalMember(false); Arrays.sort(view, AbsoluteOrder.comp); if (Arrays.equals(view, this.view)) { return; } this.view = view; viewChange(view); }
@Override public void memberDisappeared(final Member member) { super.memberDisappeared(member); membershipChanged(); installViewWhenStable(); }
public boolean isCoordinator() { return view == null ? false : getLocalMember(false).equals( getCoordinator()); }
@Override public void start(int svc) throws ChannelException { super.start(svc); installViewWhenStable(); }
@Override public void memberAdded(final Member member) { super.memberAdded(member); membershipChanged(); installViewWhenStable(); }
public boolean isCoordinator() { return view == null ? false : getLocalMember(false).equals( getCoordinator()); }
@Override public void memberAdded(final Member member) { super.memberAdded(member); membershipChanged(); installViewWhenStable(); }
@Override public void memberAdded(final Member member) { super.memberAdded(member); membershipChanged(); installViewWhenStable(); }
@Override public void memberAdded(final Member member) { super.memberAdded(member); membershipChanged(); installViewWhenStable(); }
@Override public void memberDisappeared(final Member member) { super.memberDisappeared(member); membershipChanged(); installViewWhenStable(); }