in continuous_load_testing/src/main/java/com/google/net/grpc/testing/directpath/continuous_load_testing/Client.java [281:317]
private static void ExecuteFullDuplexCalls(TestServiceStub stub) {
logger.info("ExecuteFullDuplexCalls");
StreamingOutputCallRequest request = StreamingOutputCallRequest.newBuilder().build();
final StreamObserver<StreamingOutputCallResponse> responseObserver = new StreamObserver<>() {
@Override
public void onNext(StreamingOutputCallResponse value) {
}
@Override
public void onError(Throwable t) {
StreamObserver<StreamingOutputCallRequest> requestObserver = stub.fullDuplexCall(
this);
for (int i = 0; i < num_of_requests; i++) {
requestObserver.onNext(request);
}
}
@Override
public void onCompleted() {
StreamObserver<StreamingOutputCallRequest> requestObserver = stub.fullDuplexCall(
this);
for (int i = 0; i < num_of_requests; i++) {
requestObserver.onNext(request);
}
}
};
for (int i = 0; i < concurrency; i++) {
Thread t = new Thread(() -> {
StreamObserver<StreamingOutputCallRequest> requestObserver = stub.fullDuplexCall(
responseObserver);
for (int i1 = 0; i1 < num_of_requests; i1++) {
requestObserver.onNext(request);
}
});
t.start();
}
}