From 24e03778ea3f9bec9e81e1eda3851aa2db3f4a9b Mon Sep 17 00:00:00 2001 From: Richard Belleville Date: Tue, 17 Mar 2020 12:36:22 -0700 Subject: [PATCH] Revert "Merge pull request #22373 from gnossen/creds_threads_and_breads" This reverts commit 61a0212539214d2b40d1c2deea0a7c2eb9313b85, reversing changes made to 19d8e2c55153327da2cf1701c45dca58f10af29b. --- src/python/grpcio/grpc/_auth.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/python/grpcio/grpc/_auth.py b/src/python/grpcio/grpc/_auth.py index 7cbbf58a606..724229a8f56 100644 --- a/src/python/grpcio/grpc/_auth.py +++ b/src/python/grpcio/grpc/_auth.py @@ -40,10 +40,9 @@ def _create_get_token_callback(callback): class GoogleCallCredentials(grpc.AuthMetadataPlugin): """Metadata wrapper for GoogleCredentials from the oauth2client library.""" - _THREAD_POOL = futures.ThreadPoolExecutor() - def __init__(self, credentials): self._credentials = credentials + self._pool = futures.ThreadPoolExecutor(max_workers=1) # Hack to determine if these are JWT creds and we need to pass # additional_claims when getting a token @@ -53,14 +52,16 @@ class GoogleCallCredentials(grpc.AuthMetadataPlugin): def __call__(self, context, callback): # MetadataPlugins cannot block (see grpc.beta.interfaces.py) if self._is_jwt: - future = self._THREAD_POOL.submit( + future = self._pool.submit( self._credentials.get_access_token, additional_claims={'aud': context.service_url}) else: - future = self._THREAD_POOL.submit( - self._credentials.get_access_token) + future = self._pool.submit(self._credentials.get_access_token) future.add_done_callback(_create_get_token_callback(callback)) + def __del__(self): + self._pool.shutdown(wait=False) + class AccessTokenAuthMetadataPlugin(grpc.AuthMetadataPlugin): """Metadata wrapper for raw access token credentials."""