aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar David Garcia Quintas <dgq@google.com>2015-10-04 14:52:13 -0700
committerGravatar David Garcia Quintas <dgq@google.com>2015-10-04 14:52:13 -0700
commitcb954cfc2858829fe7bff785b1a5d5204bfd338f (patch)
tree92295094d67005673e441a21e1f0a0226b781b1c
parent0dfbdf6e54e73a71823907a60aeb62717a4c81df (diff)
Removed exec_ctx from cq_alarm's functions
-rw-r--r--src/core/surface/completion_queue.c17
-rw-r--r--src/core/surface/completion_queue.h7
-rw-r--r--test/core/surface/completion_queue_test.c18
3 files changed, 20 insertions, 22 deletions
diff --git a/src/core/surface/completion_queue.c b/src/core/surface/completion_queue.c
index 368838860f..31ec1b68da 100644
--- a/src/core/surface/completion_queue.c
+++ b/src/core/surface/completion_queue.c
@@ -365,27 +365,30 @@ static void cq_alarm_cb(grpc_exec_ctx *exec_ctx, void *arg, int success) {
do_nothing_end_completion, NULL, &cq_alarm->completion);
}
-grpc_cq_alarm *grpc_cq_alarm_create(grpc_exec_ctx *exec_ctx,
- grpc_completion_queue *cq,
+grpc_cq_alarm *grpc_cq_alarm_create(grpc_completion_queue *cq,
gpr_timespec deadline, void *tag) {
grpc_cq_alarm *cq_alarm = gpr_malloc(sizeof(grpc_cq_alarm));
+ grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
GRPC_CQ_INTERNAL_REF(cq, "cq_alarm");
cq_alarm->cq = cq;
cq_alarm->tag = tag;
- grpc_alarm_init(exec_ctx, &cq_alarm->alarm, deadline, cq_alarm_cb, cq_alarm,
+ grpc_alarm_init(&exec_ctx, &cq_alarm->alarm, deadline, cq_alarm_cb, cq_alarm,
gpr_now(GPR_CLOCK_MONOTONIC));
grpc_cq_begin_op(cq);
+ grpc_exec_ctx_finish(&exec_ctx);
return cq_alarm;
}
-void grpc_cq_alarm_cancel(grpc_exec_ctx *exec_ctx, grpc_cq_alarm *cq_alarm) {
- grpc_alarm_cancel(exec_ctx, &cq_alarm->alarm);
+void grpc_cq_alarm_cancel(grpc_cq_alarm *cq_alarm) {
+ grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
+ grpc_alarm_cancel(&exec_ctx, &cq_alarm->alarm);
+ grpc_exec_ctx_finish(&exec_ctx);
}
-void grpc_cq_alarm_destroy(grpc_exec_ctx *exec_ctx, grpc_cq_alarm *cq_alarm) {
- grpc_cq_alarm_cancel(exec_ctx, cq_alarm);
+void grpc_cq_alarm_destroy(grpc_cq_alarm *cq_alarm) {
+ grpc_cq_alarm_cancel(cq_alarm);
GRPC_CQ_INTERNAL_UNREF(cq_alarm->cq, "cq_alarm");
gpr_free(cq_alarm);
}
diff --git a/src/core/surface/completion_queue.h b/src/core/surface/completion_queue.h
index ab5b87c5c8..12a7e9a147 100644
--- a/src/core/surface/completion_queue.h
+++ b/src/core/surface/completion_queue.h
@@ -99,15 +99,14 @@ int grpc_cq_is_server_cq(grpc_completion_queue *cc);
* Once the alarm expires (at \a deadline) or it's cancelled (see ...), an event
* with tag \a tag will be added to \a cq. If the alarm expired, the event's
* success bit will be true, false otherwise (ie, upon cancellation). */
-grpc_cq_alarm *grpc_cq_alarm_create(grpc_exec_ctx *exec_ctx,
- grpc_completion_queue *cq,
+grpc_cq_alarm *grpc_cq_alarm_create(grpc_completion_queue *cq,
gpr_timespec deadline, void *tag);
/** Cancel a completion queue alarm. Calling this function ove an alarm that has
* already run has no effect. */
-void grpc_cq_alarm_cancel(grpc_exec_ctx *exec_ctx, grpc_cq_alarm *cq_alarm);
+void grpc_cq_alarm_cancel(grpc_cq_alarm *cq_alarm);
/** Destroy the given completion queue alarm, cancelling it in the process. */
-void grpc_cq_alarm_destroy(grpc_exec_ctx *exec_ctx, grpc_cq_alarm *cq_alarm);
+void grpc_cq_alarm_destroy(grpc_cq_alarm *cq_alarm);
#endif /* GRPC_INTERNAL_CORE_SURFACE_COMPLETION_QUEUE_H */
diff --git a/test/core/surface/completion_queue_test.c b/test/core/surface/completion_queue_test.c
index 785093c60f..16bccc3609 100644
--- a/test/core/surface/completion_queue_test.c
+++ b/test/core/surface/completion_queue_test.c
@@ -104,7 +104,6 @@ static void test_cq_end_op(void) {
static void test_cq_alarm(void) {
grpc_completion_queue *cc;
- grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
LOG_TEST("test_cq_alarm");
cc = grpc_completion_queue_create(NULL);
@@ -112,35 +111,32 @@ static void test_cq_alarm(void) {
/* regular expiry */
grpc_event ev;
void *tag = create_test_tag();
- grpc_cq_alarm *cq_alarm = grpc_cq_alarm_create(
- &exec_ctx, cc, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1), tag);
+ grpc_cq_alarm *cq_alarm =
+ grpc_cq_alarm_create(cc, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1), tag);
ev = grpc_completion_queue_next(cc, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2),
NULL);
GPR_ASSERT(ev.type == GRPC_OP_COMPLETE);
GPR_ASSERT(ev.tag == tag);
GPR_ASSERT(ev.success);
- grpc_cq_alarm_destroy(&exec_ctx, cq_alarm);
+ grpc_cq_alarm_destroy(cq_alarm);
}
{
/* cancellation */
grpc_event ev;
void *tag = create_test_tag();
- grpc_cq_alarm *cq_alarm = grpc_cq_alarm_create(
- &exec_ctx, cc, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2), tag);
+ grpc_cq_alarm *cq_alarm =
+ grpc_cq_alarm_create(cc, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2), tag);
- grpc_cq_alarm_cancel(&exec_ctx, cq_alarm);
- GPR_ASSERT(grpc_exec_ctx_flush(&exec_ctx) == 1);
+ grpc_cq_alarm_cancel(cq_alarm);
ev = grpc_completion_queue_next(cc, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1),
NULL);
GPR_ASSERT(ev.type == GRPC_OP_COMPLETE);
GPR_ASSERT(ev.tag == tag);
GPR_ASSERT(ev.success == 0);
- grpc_cq_alarm_destroy(&exec_ctx, cq_alarm);
+ grpc_cq_alarm_destroy(cq_alarm);
}
-
shutdown_and_destroy(cc);
- grpc_exec_ctx_finish(&exec_ctx);
}
static void test_shutdown_then_next_polling(void) {