+
    UBi                        R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^RIH	t	 ^RI
Ht RR.t ! R R]P                  4      t ! R R	4      t]P                   R
8X  d   ^ RIt ! R R]4      tR# ^ RIt ! R R]4      tR# )z9Utility functions with platform specific implementations.)annotationsN)mlog)MesonExceptionDirectoryLockDirectoryLockActionc                  "    ] tR t^t^ t^t^tRtR# )r    N)__name__
__module____qualname____firstlineno__IGNOREWAITFAIL__static_attributes__r       >/usr/lib/python3.14/site-packages/mesonbuild/utils/platform.pyr   r      s    FDDr   c                  J    ] tR t^t$ R]R&   RR R lltR R ltR R ltR	tR
# )DirectoryLockBasezT.TextIOlockfilec               0    V ^8  d   QhRRRRRRRRRRR	R
/# )   	directorystrr   actionr   erroptionalboolreturnNoner   )formats   "r   __annotate__DirectoryLockBase.__annotate__   s:     ! !# ! !>Q !X[ !!,0!r   c                	r    W0n         W@n        \        P                  P	                  W4      V n        WPn        R # N)r   r   ospathjoinlockpathr   )selfr   r   r   r   r   s   &&&&&&r   __init__DirectoryLockBase.__init__   s%    Y9 r   c                   V ^8  d   QhRR/# r   r   r   r   )r    s   "r   r!   r"   #   s     A A4 Ar   c                	2    \         P                  ! R 4       R# )z*Calling the no-op version of DirectoryLockN)r   debug)r)   s   &r   	__enter__DirectoryLockBase.__enter__#   s    

?@r   c                    V ^8  d   QhRRRR/# r   argszT.Anyr   r   r   )r    s   "r   r!   r"   &   s      e  r   c                	    R # r$   r   r)   r4   s   &*r   __exit__DirectoryLockBase.__exit__&   s    r   )r   r   r(   r   N)F)	r	   r
   r   r   __annotations__r*   r0   r7   r   r   r   r   r   r      s    !A r   r   win32c                  .    ] tR t^-tR R ltR R ltRtR# )r   c                   V ^8  d   QhRR/# r-   r   )r    s   "r   r!   DirectoryLock.__annotate__/   s     	/ 	/t 	/r   c                	     \        V P                  R RR7      V n         \        P                  pT P                  \        P                  8w  d   \        P                  p\        P                  ! T P                  P                  4       T^4       R#   \        \        3 d    h \
         d8    T P                  \        P                  8X  g   T P                  '       d    R#  Li ; i  \          dS    T P                  P#                  4        T P                  \        P                  8X  d    R# \%        T P&                  4      h\(         d1    T P                  P#                  4        \%        T P&                  4      hi ; i)w+utf-8encodingN)openr(   r   FileNotFoundErrorIsADirectoryErrorOSErrorr   r   r   r   msvcrtLK_LOCKr   LK_NBLCKlockingfilenoBlockingIOErrorcloser   r   PermissionError)r)   modes   & r   r0   DirectoryLock.__enter__/   s    $T]]D7 K/~~;;"5":"::!??Dt}}335tQ? &'89   ;;"5"<"<< AN # /##%;;"5"<"<<$TXX.." /##%$TXX../s0   B A/C' C$,1C$#C$'AE=.E=1E=c                    V ^8  d   QhRRRR/# r3   r   )r    s   "r   r!   r=   H        	" 	"% 	"D 	"r   c                	   V P                   e   V P                   P                  '       d   R # \        P                  ! V P                   P	                  4       \        P
                  ^4       V P                   P                  4        R # r$   )r   closedrG   rJ   rK   LK_UNLCKrM   r6   s   &*r   r7   DirectoryLock.__exit__H   sO    }}$(<(<(<NN4==//16??AFMM!r   r   Nr	   r
   r   r   r0   r7   r   r   r   r   r   r   -   s    	/2	" 	"r   c                  .    ] tR t^PtR R ltR R ltRtR# )r   c                   V ^8  d   QhRR/# r-   r   )r    s   "r   r!   r=   R   s     	` 	`t 	`r   c                	    \        V P                  R RR7      V n         \        P                  pT P                  \        P                  8w  d   T\        P                  ,          p\        P                  ! T P                  T4       R#   \        \        3 d    h \
         d8    T P                  \        P                  8X  g   T P                  '       d    R#  Li ; i  \         dS    T P                  P!                  4        T P                  \        P                  8X  d    R# \#        T P$                  4      h\&         d1    T P                  P!                  4        \#        T P$                  4      h\
         dE   pT P                  P!                  4        \#        RT P                   RTP(                   24      hRp?ii ; i)r?   r@   rA   NzFailed to lock directory z: )rC   r(   r   rD   rE   rF   r   r   r   r   fcntlLOCK_EXr   LOCK_NBflockrL   rM   r   r   rN   strerror)r)   flagses   &  r   r0   rP   R   sR    $T]]D7 K`;;"5":"::!EMM1EDMM51 &'89   ;;"5"<"<< AN # /##%;;"5"<"<<$TXX.." /##%$TXX.. `##%$'@rRSR\R\Q]%^__`sB   B	 A'C 	C$1CCAG&G8G=G>?F==Gc                    V ^8  d   QhRRRR/# r3   r   )r    s   "r   r!   r=   n   rR   r   c                	    V P                   e   V P                   P                  '       d   R # \        P                  ! V P                   \        P                  4       V P                   P                  4        R # r$   )r   rT   r\   r_   LOCK_UNrM   r6   s   &*r   r7   rV   n   sD    }}$(<(<(<KKu}}5MM!r   rW   NrX   r   r   r   r   r   P   s    	`8	" 	"r   )__doc__
__future__r   enumr%   systypingT r   corer   __all__Enumr   r   platformrG   r   r\   r   r   r   <module>rq      sv   
 @ "  	 
    1
2$)) 
 $ <<7") "B "") ""r   