HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/multiprocessing/__pycache__/shared_memory.cpython-310.opt-2.pyc
o

�iH�@s�	ddgZddlmZddlZddlZddlZddlZddlZddlZej	dkr/ddl
Z
dZnddlZdZdd	l
mZejejBZd
ZerHdZndZd
d�ZGdd�d�ZdZGdd�d�ZdS)�SharedMemory�
ShareableList�)�partialN�ntFT�)�resource_tracker�z/psm_Zwnsm_cCs$	ttt�d}tt�|�}|S)N�)�_SHM_SAFE_NAME_LENGTH�len�_SHM_NAME_PREFIX�secretsZ	token_hex)�nbytes�name�r�:/usr/local/lib/python3.10/multiprocessing/shared_memory.py�_make_filename(src@s�eZdZ	dZdZdZdZejZ	dZ
erdndZddd�Z
d	d
�Zdd�Zd
d�Zedd��Zedd��Zedd��Zdd�Zdd�ZdS)rN���i�TFrc		Csx|dkstd��|rttjB|_|dkrtd��|dur&|jtj@s&td��tr�|durL	t�}z
tj	||j|j
d�|_Wn	tyFYq,w||_
	n|jrSd|n|}tj	||j|j
d�|_||_
z|ro|rot�|j|�t�|j�}|j}t�|j|�|_Wnty�|���wt�|j
d�n�|r�	|dur�t�n|}t�tjtjtj|d	?d
@|d
@|�}z1t��}|tjkr�|dur�ttj t�!tj �|tj��Wt�"|�q�tjd||d�|_Wt�"|�nt�"|�w||_
	n?||_
t�#tj$d
|�}zt�%|tj$ddd�}Wt�"|�nt�"|�wzt�&|�}Wt�'|�nt�'|�wtjd||d�|_||_(t)|j�|_*dS)Nrz!'size' must be a positive integerz4'size' must be a positive number different from zeroz&'name' can only be None if create=TrueT)�mode�/�
shared_memory� l��r)ZtagnameF)+�
ValueError�_O_CREX�os�O_RDWR�_flags�O_EXCL�
_USE_POSIXr�_posixshmemZshm_open�_mode�_fd�FileExistsError�_name�_prepend_leading_slash�	ftruncate�fstat�st_size�mmap�_mmap�OSError�unlinkr�register�_winapiZCreateFileMappingZINVALID_HANDLE_VALUEZNULLZPAGE_READWRITEZGetLastErrorZERROR_ALREADY_EXISTS�errno�EEXIST�strerrorZCloseHandleZOpenFileMappingZ
FILE_MAP_READZ
MapViewOfFileZVirtualQuerySizeZUnmapViewOfFile�_size�
memoryview�_buf)	�selfr�create�sizeZstatsZ	temp_nameZh_mapZlast_error_codeZp_bufrrr�__init__Ks�����
�

����zSharedMemory.__init__cCs$z|��WdStyYdSw�N)�closer*�r4rrr�__del__�s
�zSharedMemory.__del__cCs|j|jd|jffS)NF)�	__class__rr6r:rrr�
__reduce__�s��zSharedMemory.__reduce__cCs|jj�d|j�d|j�d�S)N�(z, size=�))r<�__name__rr6r:rrr�__repr__�szSharedMemory.__repr__cC�	|jSr8)r3r:rrr�buf��zSharedMemory.bufcCs0	|j}tr|jr|j�d�r|jdd�}|S)Nrr)r#rr$�
startswith)r4Z
reported_namerrrr�s
zSharedMemory.namecCrBr8)r1r:rrrr6�rDzSharedMemory.sizecCsb	|jdur|j��d|_|jdur|j��d|_tr-|jdkr/t�|j�d|_dSdSdS)Nrr)r3�releaser)r9rr!rr:rrrr9�s




�zSharedMemory.closecCs2	tr|jrt�|j�t�|jd�dSdSdS)Nr)rr#rZ
shm_unlinkr�
unregisterr:rrrr+�s

�zSharedMemory.unlink)NFr)r@�
__module__�__qualname__r#r!r)r3rrrr rr$r7r;r=rA�propertyrCrr6r9r+rrrrr2s*
n




�utf8c@seZdZ	edededededdjdiZ	dZ
dd	�d
d	�dd	�dd	�d
�Zedd��Z
d5dd�dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zed#d$��Zed%d&��Zed'd(��Zed)d*��Zed+d,��Zed-d.��Zed/d0��Zd1d2�Zd3d4�Z e!e"j#�Z$dS)6r�q�dzxxxxxxx?z%dsNzxxxxxx?x�cCs|Sr8r��valuerrr�<lambda>�zShareableList.<lambda>cCs|�d��t�S�N�)�rstrip�decode�	_encodingrOrrrrQscCs
|�d�SrS)rUrOrrrrQs
cCsdSr8r)�_valuerrrrQrR)rrr	�cCs8	t|ttdjf�sdSt|t�rdSt|t�rdSdS)Nrrr	rY)�
isinstance�str�bytesr<rOrrr�_extract_recreation_codes

z&ShareableList._extract_recreation_code�rcs�|dus|durc|pd}�fdd�|D�}t|��_d}dg�_|D]}||ddkr.�jnt|dd��7}�j�|�q"�fdd�|D�}t�d�jd	�	|��j
�j�}t|d
|d��_
nt|��_
|dur�t�tjd�j�j
jd�jg�j�R�tjd	�	|��j
j�jg�fdd
�|D��R�tj�j
�j
j�jg�fdd
�|D��R�tj�j�j
j�jg|�R�dSt���_tt��j�j
jd���_dS)NrcsPg|]$}t|ttf�s�jt|�n�jt|��jt|��jdf�qS)r)rZr[r\�_types_mapping�type�
_alignmentr��.0�itemr:rr�
<listcomp>-s����z*ShareableList.__init__.<locals>.<listcomp>rr�scsg|]}��|��qSr)r]rbr:rrre?s
�rL�T)r5r6c3s(�|]}t|t�r|���n|VqdSr8)rZr[�encode�rc�v��_encrr�	<genexpr>Zs�&z)ShareableList.__init__.<locals>.<genexpr>c3s�|]}|���VqdSr8)rhrirkrrrm`s�rN)r�	_list_len�_allocated_offsetsra�int�append�struct�calcsize�_format_size_metainfo�join�_format_packing_metainfo�_format_back_transform_codesr�shmrW�	pack_intorC�_offset_data_start�_offset_packing_formats�_offset_back_transform_codes�list�unpack_from)r4ZsequencerZ_formats�offset�fmtZ_recreation_codesZrequested_sizer)rlr4rr7*s�
�
&
�����
��������
�
�zShareableList.__init__cCsl	|dkr|n||j}||jks|jdkrtd��t�d|jj|j|d�d}|�d�}|�t	�}|S)Nr� Requested position out of range.�8srNrT)
rn�
IndexErrorrrr~rxrCr{rUrVrW)r4�positionrjr��
fmt_as_strrrr�_get_packing_formatss��

z!ShareableList._get_packing_formatcCsH	||jks|jdkrtd��t�d|jj|j|�d}|j|}|S)Nrr��b)rnr�rrr~rxrCr|�_back_transforms_mapping)r4r��transform_codeZtransform_functionrrr�_get_back_transform�s��
z!ShareableList._get_back_transformcCsj	||jks|jdkrtd��t�d|jj|j|d|�t��|�	|�}t�d|jj|j
||�dS)Nrr�r�rNr�)rnr�rrryrxrCr{rhrWr]r|)r4r�r�rPr�rrr�!_set_packing_format_and_transform�s �
�z/ShareableList._set_packing_format_and_transformcCsr|dkr|n||j}z|j|j|}t�|�|�|jj|�\}Wnty-td��w|�	|�}||�}|S)Nrzindex out of range)
rnrzrorrr~r�rxrCr�r�)r4r�rrjZback_transformrrr�__getitem__�s
��
zShareableList.__getitem__c	Cs�|dkr|n||j}z|j|}|j|}|�|�}Wnty'td��wt|ttf�s9|jt	|�}|}n0|j|d|}t|t�rL|�
t�n|}t|�|krXt
d��|ddkra|}n|jt|f}|�|||�t�||jj||�dS)Nrzassignment index out of rangerz(bytes/str item exceeds available storagerrf)rnrorzr�r�rZr[r\r_r`rhrWrrr�rrryrxrC)	r4r�rPZitem_offsetrZcurrent_formatZ
new_formatZ
encoded_valueZallocated_lengthrrr�__setitem__�s:

�����zShareableList.__setitem__cCst|j|jjd�dfS)Nr^r)rr<rxrr:rrrr=��zShareableList.__reduce__cCst�d|jjd�dS)NrLr)rrr~rxrCr:rrr�__len__�r�zShareableList.__len__cCs"|jj�dt|��d|jj�d�S)Nr>z, name=r?)r<r@r}rxrr:rrrrA�s"zShareableList.__repr__cs 	d��fdd�t�j�D��S)Nrgc3s�|]}��|�VqdSr8)r�)rc�ir:rrrm�s�

�z'ShareableList.format.<locals>.<genexpr>)ru�rangernr:rr:r�format�s�zShareableList.formatcCs	d|jdS)NrLr�rnr:rrrrt�sz#ShareableList._format_size_metainfocC�	d|jS)Nr�r�r:rrrrv��
z&ShareableList._format_packing_metainfocCr�)Nr�r�r:rrrrw�r�z*ShareableList._format_back_transform_codescCs|jddS)Nr	rNr�r:rrrrz�sz ShareableList._offset_data_startcCs|j|jdS)Nr)rzror:rrrr{��z%ShareableList._offset_packing_formatscCs|j|jdS)NrN)r{rnr:rrrr|r�z*ShareableList._offset_back_transform_codescs	t�fdd�|D��S)Nc3s�|]}�|kVqdSr8r)rc�entryrOrrrm
s�z&ShareableList.count.<locals>.<genexpr>)�sum)r4rPrrOr�countszShareableList.countcCs2	t|�D]\}}||kr|Sqt|�d���)Nz not in this container)�	enumerater)r4rPr�r�rrr�indexs�zShareableList.indexr8)%r@rHrIrp�float�boolr[r\r<r_rar��staticmethodr]r7r�r�r�r�r�r=r�rArJr�rtrvrwrzr{r|r�r��classmethod�types�GenericAlias�__class_getitem__rrrrr�sV��

I!







)�__all__�	functoolsrr(rr.rrr
r�rr-rrrgr�O_CREATrrr
rrrrWrrrrr�<module>s2

F