File: //opt/cppython/lib/python3.8/site-packages/google/auth/__pycache__/_refresh_worker.cpython-38.pyc
U
KD�g/
� @ sX d dl Z d dlZd dlZd dlm mZ e�e�Z G dd� d�Z
G dd� dej�ZdS )� Nc @ s8 e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� ZdS )
�RefreshThreadManagerzD
Organizes exactly one background job that refresh a token.
c C s d| _ t�� | _dS )zInitializes the manager.N)�_worker� threading�Lock�_lock��self� r �H/opt/cppython/lib/python3.8/site-packages/google/auth/_refresh_worker.py�__init__ s zRefreshThreadManager.__init__c C s� |dks|dkrt �d��| j�\ | jdk rF| jjdk rFW 5 Q R � dS | jdksZ| j�� sxt|t�|�d�| _| j� � W 5 Q R X dS )au Starts a refresh thread for the given credentials.
The credentials are refreshed using the request parameter.
request and cred MUST not be None
Returns True if a background refresh was kicked off. False otherwise.
Args:
cred: A credentials object.
request: A request object.
Returns:
bool
NzQUnable to start refresh. cred and request must be valid and instantiated objects.F)�cred�requestT)
�eZInvalidValuer r �_error_info�is_alive�
RefreshThread�copy�deepcopy�start)r r r
r r r
�
start_refresh# s
�z"RefreshThreadManager.start_refreshc C s$ | j � | jrd| j_W 5 Q R X dS )zU
Removes any errors that were stored from previous background refreshes.
N)r r r r r r r
�clear_error>