Go to the documentation of this file.
25 #include "absl/strings/str_cat.h"
47 #define NUM_THREADS 10
49 #define NUM_THREADS 100
52 #define NUM_OUTER_LOOPS 10
53 #define NUM_INNER_LOOPS 10
54 #define DELAY_MILLIS 10
55 #define POLL_MILLIS 15000
57 #define NUM_OUTER_LOOPS_SHORT_TIMEOUTS 10
58 #define NUM_INNER_LOOPS_SHORT_TIMEOUTS 100
59 #define DELAY_MILLIS_SHORT_TIMEOUTS 1
62 #define POLL_MILLIS_SHORT_TIMEOUTS 30000
64 #define SERVER_SHUTDOWN_TIMEOUT 30000
66 static void*
tag(
int n) {
return reinterpret_cast<void*
>(
n); }
136 grpc_sockaddr*
addr =
reinterpret_cast<grpc_sockaddr*
>(resolved_addr.
addr);
146 memset(&resolved_addr, 0,
sizeof(resolved_addr));
147 addr->sa_family = GRPC_AF_INET;
157 while (!
args->stop.load(std::memory_order_acquire)) {
165 args->stop.store(
true, std::memory_order_release);
190 args.addr =
"localhost:54321";
193 const_cast<char*
>(
args.addr.c_str()));
220 const_cast<char*
>(
args.addr.c_str()));
247 const_cast<char*
>(
args.addr.c_str()));
254 args.stop.store(
true, std::memory_order_release);
261 grpc_schedule_on_exec_ctx));
308 const_cast<char*
>(
"localhost:54321"));
319 int main(
int argc,
char** argv) {
struct grpc_pollset_worker grpc_pollset_worker
size_t grpc_pollset_size(void)
#define SERVER_SHUTDOWN_TIMEOUT
GPRAPI void gpr_mu_unlock(gpr_mu *mu)
std::string StrCat(const AlphaNum &a, const AlphaNum &b)
return memset(p, 0, total)
void server_thread(void *vargs)
GRPCAPI grpc_connectivity_state grpc_channel_check_connectivity_state(grpc_channel *channel, int try_to_connect)
GPRAPI void gpr_event_set(gpr_event *ev, void *value)
GPRAPI void gpr_free(void *ptr)
static void done_pollset_shutdown(void *pollset, grpc_error_handle)
int main(int argc, char **argv)
GRPCAPI grpc_server * grpc_server_create(const grpc_channel_args *args, void *reserved)
GRPCAPI void grpc_server_register_completion_queue(grpc_server *server, grpc_completion_queue *cq, void *reserved)
GPRAPI gpr_timespec gpr_inf_future(gpr_clock_type type)
grpc_error_handle grpc_pollset_work(grpc_pollset *pollset, grpc_pollset_worker **worker, grpc_core::Timestamp deadline)
static void on_connect(void *vargs, grpc_endpoint *tcp, grpc_pollset *, grpc_tcp_server_acceptor *acceptor)
#define GRPC_LOG_IF_ERROR(what, error)
#define GRPC_CLOSURE_CREATE(cb, cb_arg, scheduler)
void grpc_tcp_server_unref(grpc_tcp_server *s)
static uv_thread_t * threads
void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu)
#define DELAY_MILLIS_SHORT_TIMEOUTS
void grpc_tcp_server_start(grpc_tcp_server *server, const std::vector< grpc_pollset * > *pollsets, grpc_tcp_server_cb on_accept_cb, void *cb_arg)
void create_loop_destroy(void *addr)
GPRAPI void * gpr_zalloc(size_t size)
GRPCAPI grpc_server_credentials * grpc_insecure_server_credentials_create()
grpc_error_handle grpc_tcp_server_add_port(grpc_tcp_server *s, const grpc_resolved_address *addr, int *out_port)
int run_concurrent_watches_with_short_timeouts_test()
GRPCAPI int grpc_channel_num_external_connectivity_watchers(grpc_channel *channel)
static const CoreConfiguration & Get()
#define NUM_INNER_LOOPS_SHORT_TIMEOUTS
GRPCAPI void grpc_server_credentials_release(grpc_server_credentials *creds)
GRPCAPI int grpc_server_add_http2_port(grpc_server *server, const char *addr, grpc_server_credentials *creds)
std::vector< grpc_pollset * > pollset
gpr_timespec grpc_timeout_milliseconds_to_deadline(int64_t time_ms)
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
GRPCAPI grpc_channel_credentials * grpc_insecure_credentials_create()
const grpc_channel_args * ToC() const
void grpc_channel_args_destroy(grpc_channel_args *a)
struct grpc_server grpc_server
GPRAPI void gpr_mu_lock(gpr_mu *mu)
GPRAPI void gpr_event_init(gpr_event *ev)
void grpc_endpoint_shutdown(grpc_endpoint *ep, grpc_error_handle why)
GRPCAPI void grpc_server_destroy(grpc_server *server)
int run_concurrent_connectivity_test()
int grpc_pick_unused_port_or_die(void)
void grpc_endpoint_destroy(grpc_endpoint *ep)
grpc_error_handle grpc_pollset_kick(grpc_pollset *pollset, grpc_pollset_worker *specific_worker)
#define NUM_OUTER_LOOPS_SHORT_TIMEOUTS
const ChannelArgsPreconditioning & channel_args_preconditioning() const
GPRAPI void * gpr_event_wait(gpr_event *ev, gpr_timespec abs_deadline)
#define GRPC_ERROR_CREATE_FROM_STATIC_STRING(desc)
grpc_completion_queue * cq
void bad_server_thread(void *vargs)
GRPCAPI void grpc_channel_credentials_release(grpc_channel_credentials *creds)
static constexpr Duration Milliseconds(int64_t millis)
GRPCAPI grpc_channel * grpc_channel_create(const char *target, grpc_channel_credentials *creds, const grpc_channel_args *args)
GRPCAPI void grpc_completion_queue_destroy(grpc_completion_queue *cq)
grpc_core::ExecCtx exec_ctx
void grpc_pollset_shutdown(grpc_pollset *pollset, grpc_closure *closure)
GRPCAPI void grpc_server_shutdown_and_notify(grpc_server *server, grpc_completion_queue *cq, void *tag)
GRPCAPI grpc_event grpc_completion_queue_next(grpc_completion_queue *cq, gpr_timespec deadline, void *reserved)
GRPCAPI void grpc_channel_destroy(grpc_channel *channel)
grpc_error_handle grpc_tcp_server_create(grpc_closure *shutdown_complete, const grpc_channel_args *args, grpc_tcp_server **server)
struct grpc_channel grpc_channel
GRPCAPI void grpc_channel_watch_connectivity_state(grpc_channel *channel, grpc_connectivity_state last_observed_state, gpr_timespec deadline, grpc_completion_queue *cq, void *tag)
void watches_with_short_timeouts(void *addr)
#define POLL_MILLIS_SHORT_TIMEOUTS
GRPCAPI grpc_completion_queue * grpc_completion_queue_create_for_next(void *reserved)
grpc_completion_type type
GRPCAPI void grpc_init(void)
GRPCAPI void grpc_server_start(grpc_server *server)
void grpc_pollset_destroy(grpc_pollset *pollset)
char addr[GRPC_MAX_SOCKADDR_SIZE]
GRPCAPI void grpc_shutdown(void)
ChannelArgs PreconditionChannelArgs(const grpc_channel_args *args) const
static grpc_completion_queue * cq
#define GRPC_ERROR_IS_NONE(err)
grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:58:52