
    i8
                     R    S SK Jr  S SKrS SKrSSKJrJrJrJrJ	r	   " S S\5      r
g)    )absolute_importN   )LockBase	NotLocked	NotMyLockLockTimeoutAlreadyLockedc                   D    \ rS rSrSrSS jrSS jrS rS rS r	S	 r
S
rg)SymlinkLockFile
   z'Lock access to a file using symlink(2).Nc                     [         R                  " XX#5        [        R                  R	                  U R
                  5      S   U l        g )Nr   )r   __init__ospathsplitunique_name)selfr   threadedtimeouts       \/home/kali/github-search/github-env/lib/python3.13/site-packages/lockfile/symlinklockfile.pyr   SymlinkLockFile.__init__   s2    $h877==)9)9:1=    c                    Ub  UOU R                   n[        R                  " 5       nUb
  US:  a  X!-  n  [        R                  " U R                  U R
                  5        g ! [         a    U R                  5       (       a   g UbO  [        R                  " 5       U:  a6  US:  a  [        SU R                  -  5      e[        SU R                  -  5      e[        R                  " Ub  US-  OS5         Of = fM  )Nr   z&Timeout waiting to acquire lock for %sz%s is already lockedr   g?)r   timer   symlinkr   	lock_fileOSErrori_am_lockingr   r   r	   sleep)r   r   end_times      r   acquireSymlinkLockFile.acquire   s     %0'dll99;7Q;H

4++T^^<& %  M$$&& *tyy{X/E"Q;"- /=.2ii/8 #9 9 #00F04		1: #; ;JJw/Bw|LM	 s   +A" "C6A0C65C6c                     U R                  5       (       d  [        SU R                  -  5      eU R                  5       (       d  [	        SU R                  -  5      e[
        R                  " U R                  5        g )Nz%s is not lockedz%s is locked, but not by me)	is_lockedr   r   r   r   r   unlinkr   r   s    r   releaseSymlinkLockFile.release6   sX    ~~.:;;""$$9DIIEFF
		$..!r   c                 T    [         R                  R                  U R                  5      $ N)r   r   islinkr   r&   s    r   r$   SymlinkLockFile.is_locked=   s    ww~~dnn--r   c                     [         R                  R                  U R                  5      =(       a-    [         R                  " U R                  5      U R
                  :H  $ r*   )r   r   r+   r   readlinkr   r&   s    r   r   SymlinkLockFile.i_am_locking@   s=    t~~. DKK/43C3CC	Er   c                     [         R                  R                  U R                  5      (       a!  [         R                  " U R                  5        g g r*   )r   r   r+   r   r%   r&   s    r   
break_lockSymlinkLockFile.break_lockD   s.    77>>$..))IIdnn% *r   )r   )TNr*   )__name__
__module____qualname____firstlineno____doc__r   r!   r'   r$   r   r1   __static_attributes__ r   r   r   r   
   s%    1>!F".E&r   r   )
__future__r   r   r    r   r   r   r   r	   r   r9   r   r   <module>r<      s$    & 	  <&h <&r   