HEX
Server: Apache
System: FreeBSD www860.sakura.ne.jp 13.0-RELEASE-p14 FreeBSD 13.0-RELEASE-p14 #2: Mon Dec 9 13:54:55 JST 2024 root@www5301.sakura.ne.jp:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64
User: yoyo0427 (1306)
PHP: 8.3.8
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.8/multiprocessing/__pycache__/shared_memory.cpython-38.opt-2.pyc
U

q��aD�@s�ddgZddlmZddlZddlZddlZddlZddlZejdkrTddl	Z	dZ
nddlZdZ
ejej
BZdZe
rzd	Znd
Zdd�ZGd
d�d�ZdZGdd�d�ZdS)�SharedMemory�
ShareableList�)�partialN�ntFT�z/psm_Zwnsm_cCs"ttt�d}tt�|�}|S)N�)�_SHM_SAFE_NAME_LENGTH�len�_SHM_NAME_PREFIX�secretsZ	token_hex)�nbytes�name�r�9/usr/local/lib/python3.8/multiprocessing/shared_memory.py�_make_filename&src@s�eZdZdZdZdZdZejZ	dZ
er*dndZddd�Z
d	d
�Zdd�Zd
d�Zedd��Zedd��Zedd��Zdd�Zdd�ZdS)rN���i�TFrc
	Csl|dkstd��|r0ttjB|_|dkr0td��|dkrL|jtj@sLtd��t�rH|dkr�t�}ztj	||j|j
d�|_Wntk
r�YqZYnX||_
q�qZn.|jr�d|n|}tj	||j|j
d�|_||_
z<|r�|r�t�|j|�t�|j�}|j}t�|j|�|_Wn tk
�r*|���YnXddlm}||j
d	��n|�r�|dk�r^t�n|}t�tjtjtj|d
?d@|d@|�}zXt��}|tjk�r�|dk	�r�tt j!t�"t j!�|tj��nW��qNtjd||d
�|_W5t�|�X||_
�qV�qNnX||_
t�#tj$d|�}zt�%|tj$ddd�}	W5t�|�Xt�&|	�}tjd||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=True)�mode�/�)�register�
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�unlink�resource_trackerr�_winapiZCreateFileMappingZINVALID_HANDLE_VALUEZNULLZPAGE_READWRITEZCloseHandleZGetLastErrorZERROR_ALREADY_EXISTS�errno�EEXIST�strerrorZOpenFileMappingZ
FILE_MAP_READZ
MapViewOfFileZVirtualQuerySize�_size�
memoryview�_buf)
�selfr
�create�sizeZstatsrZ	temp_nameZh_mapZlast_error_codeZp_bufrrr�__init__Is��
�
�

�
��
zSharedMemory.__init__cCs&z|��Wntk
r YnXdS�N)�closer*�r4rrr�__del__�szSharedMemory.__del__cCs|j|jd|jffS)NF)�	__class__r
r6r:rrr�
__reduce__�s��zSharedMemory.__reduce__cCs|jj�d|j�d|j�d�S)N�(z, size=�))r<�__name__r
r6r:rrr�__repr__�szSharedMemory.__repr__cCs|jSr8)r3r:rrr�buf�szSharedMemory.bufcCs.|j}tr*|jr*|j�d�r*|jdd�}|S)Nrr)r#rr$�
startswith)r4Z
reported_namerrrr
�s

zSharedMemory.namecCs|jSr8)r1r:rrrr6�szSharedMemory.sizecCsX|jdk	r|j��d|_|jdk	r4|j��d|_trT|jdkrTt�|j�d|_dS)Nrr)r3�releaser)r9rr!rr:rrrr9�s



zSharedMemory.closecCs2tr.|jr.ddlm}t�|j�||jd�dS)Nr)�
unregisterr)rr#r,rErZ
shm_unlink)r4rErrrr+�s
zSharedMemory.unlink)NFr)r@�
__module__�__qualname__r#r!r)r3rrrr rr$r7r;r=rA�propertyrBr
r6r9r+rrrrr0s&
l




�utf8c@seZdZedededededdjdiZ	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 dS)6r�q�dzxxxxxxx?z%dsNzxxxxxx?x�cCs|Sr8r��valuerrr�<lambda>
�zShareableList.<lambda>cCs|�d��t�S�N�)�rstrip�decode�	_encodingrMrrrrOrPcCs
|�d�SrQ)rSrMrrrrOrPcCsdSr8r)�_valuerrrrO
rP)rrr�cCs:t|ttdjf�sdSt|t�r$dSt|t�r2dSdSdS)NrrrrW)�
isinstance�str�bytesr<rMrrr�_extract_recreation_codes

z&ShareableList._extract_recreation_code�r
csr|dk	rv�fdd�|D�}t|��_t�fdd�|D���_�fdd�|D�}t�d�jd�|��j�j	�}nd}|dk	r�|dkr�t
|��_nt
|d	|d
��_|dk	�rNt�tj
d�j�jjd�jf�j��tj
d�|��jj�jf�fdd�|D���tj
�j�jj�jf�fd
d�|D���tj
�j	�jj�jf|��n t���_t��j�jjd��_dS)NcsPg|]H}t|ttf�s$�jt|�n&�jt|��jt|��jdf�qS)r)rXrYrZ�_types_mapping�type�
_alignmentr	��.0�itemr:rr�
<listcomp> s���z*ShareableList.__init__.<locals>.<listcomp>c3s0|](}|ddkr�jnt|dd��VqdS)r�sN)r_�int)ra�fmtr:rr�	<genexpr>*s�z)ShareableList.__init__.<locals>.<genexpr>csg|]}��|��qSr)r[r`r:rrrc.srJ�rLT)r5r6rc3s&|]}t|t�r|���n|VqdSr8)rXrY�encode�ra�v��_encrrrgMsc3s|]}|���VqdSr8)rirjrlrrrgSs)r	�	_list_len�tuple�_allocated_bytes�struct�calcsize�_format_size_metainfo�join�_format_packing_metainfo�_format_back_transform_codesr�shmrU�	pack_intorB�_offset_data_start�_offset_packing_formats�_offset_back_transform_codes�unpack_from)r4Zsequencer
Z_formatsZ_recreation_codesZrequested_sizer)rmr4rr7sz
�
�

�����
��������
�zShareableList.__init__cCsj|dkr|n||j}||jks*|jdkr2td��t�d|jj|j|d�d}|�d�}|�t	�}|S)Nr� Requested position out of range.�8srLrR)
rn�
IndexErrorrqr|rwrBrzrSrTrU)r4�positionrkrf�
fmt_as_strrrr�_get_packing_formatds��

z!ShareableList._get_packing_formatcCs\|dkr|n||j}||jks*|jdkr2td��t�d|jj|j|�d}|j|}|S)Nrr}�b)rnrrqr|rwrBr{�_back_transforms_mapping)r4r��transform_codeZtransform_functionrrr�_get_back_transformts��
z!ShareableList._get_back_transformcCs~|dkr|n||j}||jks*|jdkr2td��t�d|jj|j|d|�t��|�	|�}t�d|jj|j
||�dS)Nrr}r~rLr�)rnrrqrxrwrBrzrirUr[r{)r4r�r�rNr�rrr�!_set_packing_format_and_transform�s �
�z/ShareableList._set_packing_format_and_transformcCsjz6|jt|jd|��}t�|�|�|jj|�\}Wntk
rRtd��YnX|�	|�}||�}|S)Nzindex out of range)
ry�sumrprqr|r�rwrBrr�)r4r��offsetrkZback_transformrrr�__getitem__�s��

zShareableList.__getitem__cCs�z&|jt|jd|��}|�|�}Wntk
rBtd��YnXt|ttf�sf|jt	|�}|}nZt|t�rz|�
t�n|}t|�|j|kr�t
d��|ddkr�|}n|jt|j|f}|�|||�t�||jj||�dS)Nzassignment index out of rangez(bytes/str item exceeds available storagerrd)ryr�rpr�rrXrYrZr]r^rirUr	rr�rqrxrwrB)r4r�rNr�Zcurrent_formatZ
new_formatZ
encoded_valuerrr�__setitem__�s6�����zShareableList.__setitem__cCst|j|jjd�dfS)Nr\r)rr<rwr
r:rrrr=�szShareableList.__reduce__cCst�d|jjd�dS)NrJr)rqr|rwrBr:rrr�__len__�szShareableList.__len__cCs"|jj�dt|��d|jj�d�S)Nr>z, name=r?)r<r@�listrwr
r:rrrrA�szShareableList.__repr__csd��fdd�t�j�D��S)Nrhc3s|]}��|�VqdSr8)r�)ra�ir:rrrg�sz'ShareableList.format.<locals>.<genexpr>)rt�rangernr:rr:r�format�s�zShareableList.formatcCs|j�d�S)NrJ�rnr:rrrrs�sz#ShareableList._format_size_metainfocCs
d|jS)Nr~r�r:rrrru�sz&ShareableList._format_packing_metainfocCs
d|jS)Nr�r�r:rrrrv�sz*ShareableList._format_back_transform_codescCs|jddS)NrrLr�r:rrrry�sz ShareableList._offset_data_startcCs|jt|j�Sr8)ryr�rpr:rrrrz�sz%ShareableList._offset_packing_formatscCs|j|jdS)NrL)rzrnr:rrrr{�sz*ShareableList._offset_back_transform_codescst�fdd�|D��S)Nc3s|]}�|kVqdSr8r)ra�entryrMrrrg�sz&ShareableList.count.<locals>.<genexpr>)r�)r4rNrrMr�count�szShareableList.countcCs4t|�D]\}}||kr|Sqt|�d���dS)Nz not in this container)�	enumerater)r4rNr�r�rrr�index�s
zShareableList.index)N)!r@rFrGre�float�boolrYrZr<r]r_r��staticmethodr[r7r�r�r�r�r�r=r�rArHr�rsrurvryrzr{r�r�rrrrr�s\��

F






)�__all__�	functoolsrr(rr.rqrr
r-rr�O_CREATrrrr
rrrUrrrrr�<module>s*

E