d(Ǯ | d Z ddlZddlZddlmZmZ ddlmZ ddlm Z ddl mZmZ ddl mZmZ G d d e Zi Z e Z G d de Z G d de Z G d de Zg dZdS )z7holds locking functionality that works across processes N)ABCMetaabstractmethod)contextmanager)Path)LockRLock)FileLockTimeoutc 6 e Zd Z fdZd fd Zd fd Z xZS ) _CountedFileLockc F t j | }t j | s& t j | n# t $ r Y nw xY wt | d| _ t | _ d S Nr )ospathdirnameisdirmakedirsOSErrorsuper__init__countr thread_safe)self lock_fileparent __class__s f/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/virtualenv/util/lock.pyr z_CountedFileLock.__init__ s ++w}}V$$ F#### ### 77s A A#"A#N皙?c | j |dn| st | j | j dk r"t || | xj dz c_ d S )N)timeoutr )r acquirer r r r )r r! poll_intervalr s r r# z_CountedFileLock.acquire sm ''go7'SS *$.))):??GGOOG]333 a Fc $ | j 5 | j dk r| j | j dk r"t | t | j dz d | _ d d d d S # 1 swxY w Y d S )Nr r" )force)r r releaser max)r r' r s r r( z_CountedFileLock.release s 0 0zA~~ ((***zQe,,,TZ!^Q//DJ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s A/BB B )Nr F)__name__ __module____qualname__r r# r( __classcell__r s @r r r st # # # # # 0 0 0 0 0 0 0 0 0 0r% r c e Zd Zd Zd Zd Zd Zed Zed Z ee dd Zee d Zd S )PathLockBasec t | }| r| n|| _ d S N)r existsresolver )r folderr s r r zPathLockBase.__init__. s1 F||&*kkmm=DLLNNN r% c 0 | j j d| j dS )N())r r+ r r s r __repr__zPathLockBase.__repr__2 s .)88DI8888r% c B t | | j |z S r3 )typer r others r __div__zPathLockBase.__div__5 s tDzz$)e+,,,r% c , | | S r3 )r@ r> s r __truediv__zPathLockBase.__truediv__8 s ||E"""r% c t r3 NotImplementedErrorr: s r __enter__zPathLockBase.__enter__; !!r% c t r3 rD r exc_typeexc_valexc_tbs r __exit__zPathLockBase.__exit__? rG r% Fc t r3 rD r nameno_blocks r lock_for_keyzPathLockBase.lock_for_keyC "!r% c t r3 rD r rP s r non_reentrant_lock_for_keyz'PathLockBase.non_reentrant_lock_for_keyH rS r% Nr* ) r+ r, r- r r; r@ rB r rF rM r rR rV r% r r1 r1 - s > > >9 9 9- - -# # # " " ^" " " ^" " " " ^ ^" " " ^ ^" " "r% r1 ) metaclassc e Zd Z fdZd dZed Zd Zd Zd Z dd Z ed Zedd Z ed Z xZS )ReentrantFileLockc X t | d | _ d S r3 )r r _lock)r r6 r s r r zReentrantFileLock.__init__O s&