public void run() { try { latch.await(); Util.sleepRandom(10, 500); buf.add(seqno, seqno); } catch (InterruptedException e) { e.printStackTrace(); } }
protected boolean _startFlush( final View new_view, int maxAttempts, long randomFloor, long randomCeiling) { if (!flushProtocolInStack) return true; if (flushInvokerClass != null) { try { Callable<Boolean> invoker = flushInvokerClass.getDeclaredConstructor(View.class).newInstance(new_view); return invoker.call(); } catch (Throwable e) { return false; } } try { boolean successfulFlush = false; boolean validView = new_view != null && new_view.size() > 0; if (validView && flushProtocolInStack) { int attemptCount = 0; while (attemptCount < maxAttempts) { try { up_prot.up(new Event(Event.SUSPEND, new ArrayList<Address>(new_view.getMembers()))); successfulFlush = true; break; } catch (Exception e) { Util.sleepRandom(randomFloor, randomCeiling); attemptCount++; } } if (successfulFlush) { if (log.isTraceEnabled()) log.trace(local_addr + ": successful GMS flush by coordinator"); } else { if (log.isWarnEnabled()) log.warn(local_addr + ": GMS flush by coordinator failed"); } } return successfulFlush; } catch (Exception e) { return false; } }