diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/core/iomgr/alarm_test.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/test/core/iomgr/alarm_test.c b/test/core/iomgr/alarm_test.c index e677ba30dd..0ccec435e6 100644 --- a/test/core/iomgr/alarm_test.c +++ b/test/core/iomgr/alarm_test.c @@ -55,6 +55,7 @@ void no_op_cb(void *arg, int success) {} typedef struct { gpr_cv cv; gpr_mu mu; + grpc_iomgr_closure *followup_closure; int counter; int done_success_ctr; int done_cancel_ctr; @@ -81,7 +82,8 @@ static void alarm_cb(void *arg /* alarm_arg */, int success) { a->success = success; gpr_cv_signal(&a->cv); gpr_mu_unlock(&a->mu); - grpc_iomgr_add_callback(followup_cb, &a->fcb_arg); + grpc_iomgr_closure_init(a->followup_closure, followup_cb, &a->fcb_arg); + grpc_iomgr_add_callback(a->followup_closure); } /* Test grpc_alarm add and cancel. */ @@ -107,6 +109,7 @@ static void test_grpc_alarm(void) { arg.done = 0; gpr_mu_init(&arg.mu); gpr_cv_init(&arg.cv); + arg.followup_closure = gpr_malloc(sizeof(grpc_iomgr_closure)); gpr_event_init(&arg.fcb_arg); grpc_alarm_init(&alarm, GRPC_TIMEOUT_MILLIS_TO_DEADLINE(100), alarm_cb, &arg, @@ -148,6 +151,7 @@ static void test_grpc_alarm(void) { } gpr_cv_destroy(&arg.cv); gpr_mu_destroy(&arg.mu); + gpr_free(arg.followup_closure); arg2.counter = 0; arg2.success = SUCCESS_NOT_SET; @@ -156,6 +160,8 @@ static void test_grpc_alarm(void) { arg2.done = 0; gpr_mu_init(&arg2.mu); gpr_cv_init(&arg2.cv); + arg2.followup_closure = gpr_malloc(sizeof(grpc_iomgr_closure)); + gpr_event_init(&arg2.fcb_arg); grpc_alarm_init(&alarm_to_cancel, GRPC_TIMEOUT_MILLIS_TO_DEADLINE(100), @@ -206,6 +212,7 @@ static void test_grpc_alarm(void) { } gpr_cv_destroy(&arg2.cv); gpr_mu_destroy(&arg2.mu); + gpr_free(arg2.followup_closure); grpc_iomgr_shutdown(); } |