Ë ‚Ö¦iH ã ó — d Z ddgZddlmZ ddlZddlZddlZddlZddlZddl Z ej dk( rddlZdZnddl Z dZd d lmZ ej ej" z ZdZerdZnd Zd„ Z G d„ d« ZdZ G d„ d« Zy)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 ó° — t t t « z dz } | dk\ sJ d« ‚t t j | « z }t |« t k sJ ‚|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Únames ú6/usr/lib64/python3.12/multiprocessing/shared_memory.pyÚ_make_filenamer ( sX € ô $¤cÔ*:Ó&;Ñ;ÀÑ A€FØ�QŠ;Ð3Ð3Ó3ˆ;Üœg×/Ñ/°Ó7Ñ7€D܈t‹9Ô-Ò-Ð-Ð-Ø€Kó c óž — e Zd ZdZdZdZdZdZej Z dZerdndZ dd„Zd„ Zd „ Zd „ Zed„ « Zed„ « Zed „ « Zd„ Zd„ Zy)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€ TFc ó — |dk\ st d« ‚|r,t t j z | _ |dk( rt d« ‚|€(| j t j z st d« ‚t �r)|€E t « } t j || j | j ¬« | _ || _ nK| j rd|z n|}t j || j | j ¬« | _ || _ |r"|r t j | j |« t j | j « }|j" }t% j$ | j |« | _ t- j. | j d« �nÖ|�r" |€ t « n|}t1 j2 t0 j4 t0 j6 t0 j8 |dz d z |d z |« } t1 j: « }|t0 j<