aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/core/util/passthru_endpoint.cc
diff options
context:
space:
mode:
authorGravatar Yash Tibrewal <yashkt@google.com>2017-11-09 17:46:29 -0800
committerGravatar Yash Tibrewal <yashkt@google.com>2017-11-09 17:46:29 -0800
commit4e9265c828f0b559b5fdba04913fed46bf771399 (patch)
tree4a379fc2bdc037753cf8d81f8b86327e4bc50a42 /test/core/util/passthru_endpoint.cc
parent0ee7574732a06e8cace4e099a678f4bd5dbff679 (diff)
parentd9da7387b8057f3bd99a417a5ee905377bce9296 (diff)
Merge with master
Diffstat (limited to 'test/core/util/passthru_endpoint.cc')
-rw-r--r--test/core/util/passthru_endpoint.cc88
1 files changed, 49 insertions, 39 deletions
diff --git a/test/core/util/passthru_endpoint.cc b/test/core/util/passthru_endpoint.cc
index 4fcae991eb..bb8cbb62bf 100644
--- a/test/core/util/passthru_endpoint.cc
+++ b/test/core/util/passthru_endpoint.cc
@@ -37,17 +37,17 @@ typedef struct passthru_endpoint passthru_endpoint;
typedef struct {
grpc_endpoint base;
- passthru_endpoint *parent;
+ passthru_endpoint* parent;
grpc_slice_buffer read_buffer;
- grpc_slice_buffer *on_read_out;
- grpc_closure *on_read;
- grpc_resource_user *resource_user;
+ grpc_slice_buffer* on_read_out;
+ grpc_closure* on_read;
+ grpc_resource_user* resource_user;
} half;
struct passthru_endpoint {
gpr_mu mu;
int halves;
- grpc_passthru_endpoint_stats *stats;
+ grpc_passthru_endpoint_stats* stats;
grpc_passthru_endpoint_stats
dummy_stats; // used if constructor stats == NULL
bool shutdown;
@@ -55,9 +55,9 @@ struct passthru_endpoint {
half server;
};
-static void me_read(grpc_endpoint *ep, grpc_slice_buffer *slices,
- grpc_closure *cb) {
- half *m = (half *)ep;
+static void me_read(grpc_endpoint* ep, grpc_slice_buffer* slices,
+ grpc_closure* cb) {
+ half* m = (half*)ep;
gpr_mu_lock(&m->parent->mu);
if (m->parent->shutdown) {
GRPC_CLOSURE_SCHED(
@@ -72,17 +72,17 @@ static void me_read(grpc_endpoint *ep, grpc_slice_buffer *slices,
gpr_mu_unlock(&m->parent->mu);
}
-static half *other_half(half *h) {
+static half* other_half(half* h) {
if (h == &h->parent->client) return &h->parent->server;
return &h->parent->client;
}
-static void me_write(grpc_endpoint *ep, grpc_slice_buffer *slices,
- grpc_closure *cb) {
- half *m = other_half((half *)ep);
+static void me_write(grpc_endpoint* ep, grpc_slice_buffer* slices,
+ grpc_closure* cb) {
+ half* m = other_half((half*)ep);
gpr_mu_lock(&m->parent->mu);
- grpc_error *error = GRPC_ERROR_NONE;
- m->parent->stats->num_writes++;
+ grpc_error* error = GRPC_ERROR_NONE;
+ gpr_atm_no_barrier_fetch_add(&m->parent->stats->num_writes, (gpr_atm)1);
if (m->parent->shutdown) {
error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Endpoint already shutdown");
} else if (m->on_read != NULL) {
@@ -101,13 +101,16 @@ static void me_write(grpc_endpoint *ep, grpc_slice_buffer *slices,
GRPC_CLOSURE_SCHED(cb, error);
}
-static void me_add_to_pollset(grpc_endpoint *ep, grpc_pollset *pollset) {}
+static void me_add_to_pollset(grpc_endpoint* ep, grpc_pollset* pollset) {}
-static void me_add_to_pollset_set(grpc_endpoint *ep,
- grpc_pollset_set *pollset) {}
+static void me_add_to_pollset_set(grpc_endpoint* ep,
+ grpc_pollset_set* pollset) {}
-static void me_shutdown(grpc_endpoint *ep, grpc_error *why) {
- half *m = (half *)ep;
+static void me_delete_from_pollset_set(grpc_endpoint* ep,
+ grpc_pollset_set* pollset) {}
+
+static void me_shutdown(grpc_endpoint* ep, grpc_error* why) {
+ half* m = (half*)ep;
gpr_mu_lock(&m->parent->mu);
m->parent->shutdown = true;
if (m->on_read) {
@@ -128,8 +131,8 @@ static void me_shutdown(grpc_endpoint *ep, grpc_error *why) {
GRPC_ERROR_UNREF(why);
}
-static void me_destroy(grpc_endpoint *ep) {
- passthru_endpoint *p = ((half *)ep)->parent;
+static void me_destroy(grpc_endpoint* ep) {
+ passthru_endpoint* p = ((half*)ep)->parent;
gpr_mu_lock(&p->mu);
if (0 == --p->halves) {
gpr_mu_unlock(&p->mu);
@@ -144,44 +147,51 @@ static void me_destroy(grpc_endpoint *ep) {
}
}
-static char *me_get_peer(grpc_endpoint *ep) {
- passthru_endpoint *p = ((half *)ep)->parent;
- return ((half *)ep) == &p->client ? gpr_strdup("fake:mock_client_endpoint")
- : gpr_strdup("fake:mock_server_endpoint");
+static char* me_get_peer(grpc_endpoint* ep) {
+ passthru_endpoint* p = ((half*)ep)->parent;
+ return ((half*)ep) == &p->client ? gpr_strdup("fake:mock_client_endpoint")
+ : gpr_strdup("fake:mock_server_endpoint");
}
-static int me_get_fd(grpc_endpoint *ep) { return -1; }
+static int me_get_fd(grpc_endpoint* ep) { return -1; }
-static grpc_resource_user *me_get_resource_user(grpc_endpoint *ep) {
- half *m = (half *)ep;
+static grpc_resource_user* me_get_resource_user(grpc_endpoint* ep) {
+ half* m = (half*)ep;
return m->resource_user;
}
static const grpc_endpoint_vtable vtable = {
- me_read, me_write, me_add_to_pollset, me_add_to_pollset_set,
- me_shutdown, me_destroy, me_get_resource_user, me_get_peer,
+ me_read,
+ me_write,
+ me_add_to_pollset,
+ me_add_to_pollset_set,
+ me_delete_from_pollset_set,
+ me_shutdown,
+ me_destroy,
+ me_get_resource_user,
+ me_get_peer,
me_get_fd,
};
-static void half_init(half *m, passthru_endpoint *parent,
- grpc_resource_quota *resource_quota,
- const char *half_name) {
+static void half_init(half* m, passthru_endpoint* parent,
+ grpc_resource_quota* resource_quota,
+ const char* half_name) {
m->base.vtable = &vtable;
m->parent = parent;
grpc_slice_buffer_init(&m->read_buffer);
m->on_read = NULL;
- char *name;
+ char* name;
gpr_asprintf(&name, "passthru_endpoint_%s_%" PRIxPTR, half_name,
(intptr_t)parent);
m->resource_user = grpc_resource_user_create(resource_quota, name);
gpr_free(name);
}
-void grpc_passthru_endpoint_create(grpc_endpoint **client,
- grpc_endpoint **server,
- grpc_resource_quota *resource_quota,
- grpc_passthru_endpoint_stats *stats) {
- passthru_endpoint *m = (passthru_endpoint *)gpr_malloc(sizeof(*m));
+void grpc_passthru_endpoint_create(grpc_endpoint** client,
+ grpc_endpoint** server,
+ grpc_resource_quota* resource_quota,
+ grpc_passthru_endpoint_stats* stats) {
+ passthru_endpoint* m = (passthru_endpoint*)gpr_malloc(sizeof(*m));
m->halves = 2;
m->shutdown = 0;
m->stats = stats == NULL ? &m->dummy_stats : stats;