
                         f    S r SSKJr  SSKJr  SSKrSSKrSSKJr   " S S\R                  5      rg)z,A threadsafe pool of httplib2.Http handlers.    )absolute_import)print_functionN)rangec                   4    \ rS rSrSrS	S jrS rS rS rSr	g)
Http   z.A threadsafe pool of httplib2.Http transports.c                     [         R                  " [         R                  " 5       5      U l        [	        U5       Vs/ s H	  o1" 5       PM     snU l        g s  snf N)	threading	ConditionLock
_conditionr   _transports)selftransport_factorysize_s       >lib/third_party/containerregistry/transport/transport_pool_.py__init__Http.__init__   s=    )))..*:;DO5:4[A[)+[ADAs   Ac                     U R                       U R                  (       a#  U R                  R                  5       sS S S 5        $ U R                   R                  5         MP  ! , (       d  f       g = fr
   )r   r   popwait)r   s    r   _get_transportHttp._get_transport!   sM    	!!%%' 
 	  
s   ,AA
A-c                     U R                      U R                  R                  U5        U R                   R                  SS9  S S S 5        g ! , (       d  f       g = f)N   )n)r   r   appendnotify)r   	transports     r   _return_transportHttp._return_transport+   s>    	
i( ooq!	 
s   5A
Ac                     U R                  5       n UR                  " U0 UD6U R                  U5        $ ! U R                  U5        f = f)zThis awaits a transport and delegates the request call.

Args:
  *args: arguments to request.
  **kwargs: named arguments to request.

Returns:
  tuple of response and content.
)r   requestr"   )r   argskwargsr!   s       r   r%   Http.request2   sG     ##%I(//
Y'dY's	   5 A)r   r   N)   )
__name__
__module____qualname____firstlineno____doc__r   r   r"   r%   __static_attributes__     r   r   r      s    6B"(r1   r   )	r.   
__future__r   r   r   httplib2	six.movesr   r   r0   r1   r   <module>r5      s)    3 & %   &(8== &(r1   