| 
					
				 | 
			
			
				@@ -45,6 +45,9 @@ grpc_closure *grpc_closure_init(grpc_closure *closure, grpc_iomgr_cb_func cb, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   closure->cb = cb; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   closure->cb_arg = cb_arg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   closure->scheduler = scheduler; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#ifndef NDEBUG 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  closure->scheduled = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return closure; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -137,6 +140,10 @@ void grpc_closure_sched(grpc_exec_ctx *exec_ctx, grpc_closure *c, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         grpc_error *error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   GPR_TIMER_BEGIN("grpc_closure_sched", 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (c != NULL) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#ifndef NDEBUG 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GPR_ASSERT(!c->scheduled); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    c->scheduled = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     assert(c->cb); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     c->scheduler->vtable->sched(exec_ctx, c, error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } else { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -149,6 +156,10 @@ void grpc_closure_list_sched(grpc_exec_ctx *exec_ctx, grpc_closure_list *list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_closure *c = list->head; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   while (c != NULL) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     grpc_closure *next = c->next_data.next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#ifndef NDEBUG 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GPR_ASSERT(!c->scheduled); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    c->scheduled = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     assert(c->cb); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     c->scheduler->vtable->sched(exec_ctx, c, c->error_data.error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     c = next; 
			 |