File: //usr/lib/python2.7/bsddb/dbutils.pyc
�
�I	ec           @   so   d  d l  m Z d  d l Z e j d d k Z e r@ d d Un d  d l Z d d Z d Z d Z
 d	 �  Z d S(
   i����(   t   sleepNi    i   s   from . import dbg      �?i�   gn��!	@c         O   s�   t  } | j d d � } d | k r. | d =n  x� t r� y |  | | �  SWq1 t j k
 r� t ru t j d | � n  t | � | d 9} | t k r� t } n  | d 8} | d k r� �  q� q1 Xq1 Wd S(   s?  DeadlockWrap(function, *_args, **_kwargs) - automatically retries
    function in case of a database deadlock.
    This is a function intended to be used to wrap database calls such
    that they perform retrys with exponentially backing off sleeps in
    between when a DBLockDeadlockError exception is raised.
    A 'max_retries' parameter may optionally be passed to prevent it
    from retrying forever (in which case the exception will be reraised).
        d = DB(...)
        d.open(...)
        DeadlockWrap(d.put, "foo", data="bar")  # set key "foo" to "bar"
    t   max_retriesi����s%   dbutils.DeadlockWrap: sleeping %1.3f
i   i   N(	   t   _deadlock_MinSleepTimet   gett   Truet   dbt   DBLockDeadlockErrort   _deadlock_VerboseFilet   writet   _sleept   _deadlock_MaxSleepTime(   t   functiont   _argst   _kwargst	   sleeptimeR   (    (    s#   /usr/lib/python2.7/bsddb/dbutils.pyt   DeadlockWrap/   s$    
	
	
(   t   timeR    R	   t   syst   version_infot   absolute_importR   R   R
   t   NoneR   R   (    (    (    s#   /usr/lib/python2.7/bsddb/dbutils.pyt   <module>   s