0x1949 Team - FAZEMRX - MANAGER
Edit File: shared_memory.cpython-310.pyc
o ��+gH � @ s� d Z ddgZddlmZ ddlZddlZddlZddlZddlZddl Z ej dkr0ddlZdZnddl Z dZd d lmZ ejejB ZdZerIdZnd Zdd� ZG dd� d�ZdZG dd� d�ZdS )z�Provides shared memory for direct access across processes. The API of this package is currently provisional. Refer to the documentation for details. �SharedMemory� ShareableList� )�partialN�ntFT� )�resource_tracker� z/psm_�wnsm_c C sB t tt� d } | dksJ d��tt�| � }t|�t ksJ �|S )z6Create a random filename for the shared memory object.� z_SHM_NAME_PREFIX too long)�_SHM_SAFE_NAME_LENGTH�len�_SHM_NAME_PREFIX�secrets� token_hex)�nbytes�name� r �4/usr/lib/python3.10/multiprocessing/shared_memory.py�_make_filename( s r c @ s� e Zd ZdZdZdZdZdZej Z dZerdndZ ddd �Zd d� Zdd � Zdd� Zedd� �Zedd� �Zedd� �Zdd� Zdd� ZdS )r a� Creates a new shared memory block or attaches to an existing shared memory block. Every shared memory block is assigned a unique name. This enables one process to create a shared memory block with a particular name so that a different process can attach to that same shared memory block using that same name. As a resource for sharing data across processes, shared memory blocks may outlive the original process that created them. When one process no longer needs access to a shared memory block that might still be needed by other processes, the close() method should be called. When a shared memory block is no longer needed by any process, the unlink() method should be called to ensure proper cleanup.N���i� TFr c C sx |dkst d��|rttjB | _|dkrt d��|d u r&| jtj@ s&t d��tr�|d u rL t� }z tj || j| j d�| _W n tyF Y q,w || _ n| jrSd| n|}tj || j| j d�| _|| _ z|ro|rot�| j|� t�| j�}|j}t�| j|�| _W n ty� | �� � w t�| j d� n�|r� |d u r�t� n|}t�tjtjtj|d ? d @ |d @ |�}z1t�� }|tjkr�|d ur�ttj t�!tj �|tj��W t�"|� q�tjd||d�| _W t�"|� nt�"|� w || _ n?|| _ t�#tj$d |�}zt�%|tj$ddd�}W t�"|� nt�"|� w zt�&|�}W t�'|� nt�'|� w tjd||d�| _|| _(t)| j�| _*d S )Nr z!'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 )�tagnameF)+� ValueError�_O_CREX�os�O_RDWR�_flags�O_EXCL� _USE_POSIXr �_posixshmem�shm_open�_mode�_fd�FileExistsError�_name�_prepend_leading_slash� ftruncate�fstat�st_size�mmap�_mmap�OSError�unlinkr �register�_winapi�CreateFileMapping�INVALID_HANDLE_VALUE�NULL�PAGE_READWRITE�GetLastError�ERROR_ALREADY_EXISTS�errno�EEXIST�strerror�CloseHandle�OpenFileMapping� FILE_MAP_READ� MapViewOfFile�VirtualQuerySize�UnmapViewOfFile�_size� memoryview�_buf) �selfr �create�size�stats� temp_name�h_map�last_error_code�p_bufr r r �__init__K s� ���� � ����zSharedMemory.__init__c C s$ z| � � W d S ty Y d S w �N)�closer. �rD r r r �__del__� s �zSharedMemory.__del__c C s | j | jd| jffS )NF)� __class__r rF rO r r r � __reduce__� s ��zSharedMemory.__reduce__c C s | j j� d| j�d| j� d�S )N�(z, size=�))rQ �__name__r rF rO r r r �__repr__� s zSharedMemory.__repr__c C � | j S )z4A memoryview of contents of the shared memory block.)rC rO r r r �buf� � zSharedMemory.bufc C s. | j }tr| jr| j �d�r| j dd� }|S )z4Unique name that identifies the shared memory block.r r N)r'