@ -824,6 +824,7 @@ static void pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
re - evaluate our pollers ( this allows poll ( ) based pollers to
ensure they don ' t miss wakeups ) */
keep_polling = 1 ;
gpr_tls_set ( & g_current_thread_poller , ( intptr_t ) pollset ) ;
while ( keep_polling ) {
keep_polling = 0 ;
if ( ! pollset - > kicked_without_pollers ) {
@ -832,7 +833,6 @@ static void pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
added_worker = 1 ;
gpr_tls_set ( & g_current_thread_worker , ( intptr_t ) & worker ) ;
}
gpr_tls_set ( & g_current_thread_poller , ( intptr_t ) pollset ) ;
GPR_TIMER_BEGIN ( " maybe_work_and_unlock " , 0 ) ;
# define POLLOUT_CHECK (POLLOUT | POLLHUP | POLLERR)
# define POLLIN_CHECK (POLLIN | POLLHUP | POLLERR)
@ -926,7 +926,6 @@ static void pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
gpr_free ( watchers ) ;
GPR_TIMER_END ( " maybe_work_and_unlock " , 0 ) ;
locked = 0 ;
gpr_tls_set ( & g_current_thread_poller , 0 ) ;
} else {
GPR_TIMER_MARK ( " pollset_work.kicked_without_pollers " , 0 ) ;
pollset - > kicked_without_pollers = 0 ;
@ -958,6 +957,7 @@ static void pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
now = gpr_now ( now . clock_type ) ;
}
}
gpr_tls_set ( & g_current_thread_poller , 0 ) ;
if ( added_worker ) {
remove_worker ( pollset , & worker ) ;
gpr_tls_set ( & g_current_thread_worker , 0 ) ;