Go to the documentation of this file.
37 #include "src/proto/grpc/testing/benchmark_service.grpc.pb.h"
46 const std::shared_ptr<Channel>&
ch) {
47 return BenchmarkService::NewStub(
ch);
51 :
public ClientImpl<BenchmarkService::Stub, SimpleRequest> {
57 config.outstanding_rpcs_per_channel() *
config.client_channels();
75 t->UpdateHistogram(&entry);
143 template <
class StreamType>
159 stream_[thread_idx]->Finish().IgnoreError();
165 std::vector<std::unique_ptr<StreamType>>
stream_;
182 std::lock_guard<std::mutex> l(
stream_mu_[thread_idx]);
185 thread_idx, s.error_message().c_str());
189 std::lock_guard<std::mutex> l(
stream_mu_[thread_idx]);
190 context_[thread_idx].~ClientContext();
195 std::vector<std::thread> cleanup_threads;
197 cleanup_threads.emplace_back([
this,
i, cleaner] {
205 for (
auto& th : cleanup_threads) {
213 [
this](
size_t thread_idx) {
context_[thread_idx].TryCancel(); });
220 grpc::ClientReaderWriter<SimpleRequest, SimpleResponse>> {
226 [
this](
size_t thread_idx) {
stream_[thread_idx]->WritesDone(); });
232 std::lock_guard<std::mutex> l(
stream_mu_[thread_idx]);
261 stream_[thread_idx]->WritesDone();
264 std::lock_guard<std::mutex> l(
stream_mu_[thread_idx]);
283 [
this](
size_t thread_idx) {
stream_[thread_idx]->WritesDone(); });
291 std::lock_guard<std::mutex> l(
stream_mu_[thread_idx]);
307 GPR_TIMER_SCOPE(
"SynchronousStreamingFromClientClient::ThreadFunc", 0);
314 stream_[thread_idx]->WritesDone();
317 std::lock_guard<std::mutex> l(
stream_mu_[thread_idx]);
341 std::lock_guard<std::mutex> l(
stream_mu_[thread_idx]);
353 GPR_TIMER_SCOPE(
"SynchronousStreamingFromServerClient::ThreadFunc", 0);
362 std::lock_guard<std::mutex> l(
stream_mu_[thread_idx]);
376 grpc::ClientReaderWriter<SimpleRequest, SimpleResponse>> {
382 [
this](
size_t thread_idx) {
stream_[thread_idx]->WritesDone(); });
388 std::lock_guard<std::mutex> l(
stream_mu_[thread_idx]);
406 switch (
config.rpc_type()) {
410 return std::unique_ptr<Client>(
412 case STREAMING_FROM_CLIENT:
413 return std::unique_ptr<Client>(
415 case STREAMING_FROM_SERVER:
416 return std::unique_ptr<Client>(
418 case STREAMING_BOTH_WAYS:
419 return std::unique_ptr<Client>(
std::vector< std::unique_ptr< StreamType > > stream_
void set_status(int status)
std::vector< double > last_recv_
gpr_timespec NextIssueTime(int thread_idx)
void CleanupAllStreams(const std::function< void(size_t)> &cleaner)
#define GPR_TIMER_SCOPE(tag, important)
void DestroyMultithreading() final
std::vector< int > messages_issued_
void FinishStream(HistogramEntry *entry, size_t thread_idx)
~SynchronousStreamingFromServerClient() override
~SynchronousStreamingPingPongClient() override
void SetupLoadTest(const ClientConfig &config, size_t num_threads)
SynchronousStreamingFromServerClient(const ClientConfig &config)
std::vector< SimpleResponse > responses_
const int messages_per_stream_
bool ThreadFuncImpl(HistogramEntry *entry, size_t thread_idx) override
SynchronousStreamingClient(const ClientConfig &config)
bool ThreadFuncImpl(HistogramEntry *entry, size_t thread_idx) override
static std::unique_ptr< BenchmarkService::Stub > BenchmarkStubCreator(const std::shared_ptr< Channel > &ch)
bool ThreadFuncImpl(HistogramEntry *, size_t) override
SynchronousClient(const ClientConfig &config)
bool ThreadFuncImpl(HistogramEntry *entry, size_t thread_idx) override
bool InitThreadFuncImpl(size_t thread_idx) override
std::vector< Bool > shutdown_
SynchronousStreamingBothWaysClient(const ClientConfig &config)
int Read(int fd, void *buf, unsigned int count)
void StartThreads(size_t num_threads)
GPRAPI int gpr_time_cmp(gpr_timespec a, gpr_timespec b)
SynchronousUnaryClient(const ClientConfig &config)
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
~SynchronousStreamingBothWaysClient() override
GPRAPI void gpr_sleep_until(gpr_timespec until)
#define gpr_atm_acq_load(p)
void ThreadFunc(size_t thread_idx, Thread *t) override
std::vector< std::mutex > stream_mu_
~SynchronousClient() override
GPRAPI gpr_timespec gpr_now(gpr_clock_type clock)
bool InitThreadFuncImpl(size_t) override
std::vector< grpc::ClientContext > context_
gpr_atm thread_pool_done_
std::unique_ptr< Client > CreateSynchronousClient(const ClientConfig &config)
int Write(int fd, const void *buf, unsigned int count)
std::vector< double > last_issue_
SynchronousStreamingPingPongClient(const ClientConfig &config)
GPRAPI gpr_timespec gpr_time_add(gpr_timespec a, gpr_timespec b)
~SynchronousStreamingClient() override
std::vector< ClientChannelInfo > channels_
bool InitThreadFuncImpl(size_t thread_idx) override
SynchronousStreamingFromClientClient(const ClientConfig &config)
virtual bool InitThreadFuncImpl(size_t thread_idx)=0
bool ThreadFuncImpl(HistogramEntry *entry, size_t thread_idx) override
bool InitThreadFuncImpl(size_t thread_idx) override
grpc::ClientContext context
~SynchronousStreamingFromClientClient() override
bool WaitToIssue(int thread_idx)
void DestroyMultithreading() final
bool InitThreadFuncImpl(size_t thread_idx) override
GPRAPI gpr_timespec gpr_time_from_seconds(int64_t s, gpr_clock_type clock_type)
~SynchronousUnaryClient() override
virtual bool ThreadFuncImpl(HistogramEntry *entry, size_t thread_idx)=0
grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:58:47