StorageStubProvider::StubHolder GetStorageStub()

in e2e-examples/gcs/benchmark/channel_policy.cc [148:165]


  StorageStubProvider::StubHolder GetStorageStub() override {
    absl::MutexLock l(&lock_);

    // Finds the channel with the least number of use.
    auto least = channel_states_.begin();
    for (auto i = channel_states_.begin(); i != channel_states_.end(); ++i) {
      if (i->in_use_count < least->in_use_count) {
        least = i;
      }
    }

    // Increases in-use count for the channel to be returned.
    least->in_use_count += 1;
    StorageStubProvider::StubHolder holder = {
        google::storage::v2::Storage::NewStub(least->channel),
        (void*)least->channel.get()};
    return holder;
  }