ó n®¸Qc@soddlmZddlZejddkZer@ddUn ddlZddZdZdZ d „Z dS( iÿÿÿÿ(tsleepNiisfrom . import dbgð?i€gn†ðù! @cOsÆt}|jddƒ}d|kr.|d=nx‘trÁy|||ŽSWq1tjk r½trutjd|ƒnt|ƒ|d9}|tkržt}n|d8}|dkr¾‚q¾q1Xq1WdS(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 iiN( t_deadlock_MinSleepTimetgettTruetdbtDBLockDeadlockErrort_deadlock_VerboseFiletwritet_sleept_deadlock_MaxSleepTime(tfunctiont_argst_kwargst sleeptimeR((s#/sys/lib/python2.7/bsddb/dbutils.pyt DeadlockWrap/s$         ( ttimeRR tsyst version_infotabsolute_importRRR tNoneRR(((s#/sys/lib/python2.7/bsddb/dbutils.pyts