HEX
Server: LiteSpeed
System: Linux kapuas.iixcp.rumahweb.net 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
User: mirz4654 (1666)
PHP: 8.1.33
Disabled: system,exec,escapeshellarg,escapeshellcmd,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,popen,pclose,dl,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setsid,posix_setuid,posix_setpgid,ini_alter,show_source,define_syslog_variables,symlink,syslog,openlog,openlog,closelog,ocinumcols,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dll,ftp,myshellexec,socket_bind,mail,posix_getwpuid
Upload Files
File: //usr/lib/python3.9/site-packages/dnf/__pycache__/lock.cpython-39.pyc
a

�!c��@s�ddlmZddlmZddlmZmZmZddlmZddl	m
Z
ddlZddl
ZddlZddlZddlZddlZddlZddlZddlZe�d�Zdd	�Zd
d�Zdd
�Zdd�Zdd�ZGdd�de�ZdS)�)�absolute_import)�unicode_literals)�ProcessLockError�ThreadLockError�	LockError)�_)�miscN�dnfcCs6tj��s2t�|�d����}tj�	t
��d|�}|S)N�utf-8�locks)r	�utilZ	am_i_root�hashlibZsha1�encodeZ	hexdigest�os�path�joinrZgetCacheDir)Zdir_Zhexdir�r�,/usr/lib/python3.9/site-packages/dnf/lock.py�
_fit_lock_dir&s
rcCsttj�t|�d�d|�S)Nzdownload_lock.pid�cachedir��ProcessLockrrrr�r�exit_on_lockrrr�build_download_lock/s�rcCsttj�t|�d�d|�S)Nzmetadata_lock.pid�metadatarrrrr�build_metadata_lock3s�rcCsttj�t|�d�d|�S)Nzrpmdb_lock.pidZRPMDBr)Z
persistdirrrrr�build_rpmdb_lock8s�rcCsttj�t|�d�d|�S)Nzlog_lock.pid�logr)Zlogdirrrrr�build_log_lock=s�rc@s>eZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�ZdS)rFcCs&||_d|_||_||_t��|_dS)Nr)�blocking�count�description�target�	threading�RLock�thread_lock)�selfr#r"r rrr�__init__Cs
zProcessLock.__init__cCs2|jjdd�s d|j}t|��|jd7_dS)NF)r z'%s already locked by a different thread�)r&�acquirer"rr!)r'�msgrrr�_lock_threadJs
zProcessLock._lock_threadc
Cs�t�|jtjtjBd�}�zZzt�|tjtjB�WnLt	y�}z4|j
t
jkrjWYd}~Wt�|�dS�WYd}~n
d}~00t�
|d�}t|�dkr�t�|t|��d��|Wt�|�Szt|�}Wn(ty�td�|j}t|��Yn0||k�r|Wt�|�St�d|tj��sft�|dtj�t�|d�t�|t|��d��|Wt�|�S|Wt�|�St�|�0dS)Ni�����rr
z�Malformed lock file found: %s.
Ensure no other dnf/yum process is running and remove the lock file manually or run systemd-tmpfiles --remove dnf.conf.z
/proc/%d/stat)r�openr#�O_CREAT�O_RDWR�fcntlZflockZLOCK_EXZLOCK_NB�OSError�errnoZEWOULDBLOCK�close�read�len�write�strr�int�
ValueErrorrr�access�F_OK�lseek�SEEK_SET�	ftruncate)r'�pid�fd�eZold_pidr+rrr�	_try_lockPsL 
�
��

�
�
�zProcessLock._try_lockcCs|jd8_|j��dS�Nr))r!r&�release)r'rrr�_unlock_threadzszProcessLock._unlock_threadcCs�tj�tj�|j��|��d}t��}|�	|�}||kr�|dkr�|j
sj|��d|j|f}t
||��||kr�td�|}t�|�|}t�d�|�	|�}q4dS)Nr-z%s already locked by %dz*Waiting for process with pid %d to finish.r))r	rZ
ensure_dirrr�dirnamer#r,�getpidrDr rGr"rr�logger�info�time�sleep)r'Zprev_pidZmy_pidrAr+rrr�	__enter__~s"



zProcessLock.__enter__cGs"|jdkrt�|j�|��dSrE)r!r�unlinkr#rG)r'Zexc_argsrrr�__exit__�s
zProcessLock.__exit__N)F)	�__name__�
__module__�__qualname__r(r,rDrGrNrPrrrrrBs
*r)Z
__future__rrZdnf.exceptionsrrrZdnf.i18nrZdnf.yumrZdnf.loggingr	Zdnf.utilr4r2r
Zloggingrr$rLZ	getLoggerrJrrrrr�objectrrrrr�<module>s(