public List<Operation> sendAndWait(List<Operation> ops,boolean checkResponse){
  Operation[] response=new Operation[ops.size()];
  String callerStackMessage="Received Failure response. (See suppressed exception for detail)";
  Exception callerStack=new RuntimeException(callerStackMessage);
  TestContext waitContext=new TestContext(ops.size(),this.timeout);
  for (int i=0; i < ops.size(); i++) {
    int index=i;
    Operation op=ops.get(i);
    op.appendCompletion(null);
    sendRequest(op);
  }
  waitContext.await();
  return Arrays.asList(response);
}

public List < Operation > sendAndWait ( List < Operation > ops , boolean checkResponse ) { Operation [ ] response = new Operation [ ops . size ( ) ] ; String callerStackMessage = "Received Failure response. (See suppressed exception for detail)" ; Exception callerStack = new RuntimeException ( callerStackMessage ) ; TestContext waitContext = new TestContext ( ops . size ( ) , this . timeout ) ; for ( int i = 0 ; i < ops . size ( ) ; i ++ ) { int index = i ; Operation op = ops . get ( i ) ; op . appendCompletion ( null ) ; sendRequest ( op ) ; } waitContext . await ( ) ; return Arrays . asList ( response ) ; }
perform given operations in parallel , then wait all ops to finish with success . the order of result corresponds to the input order .
