0 KˆÓÜ „[?Û¾Ù,ìKa ´iÜGã@s²ddgZddlmZddlZddlZddlZddlZddlZddlZej dkr\ddl Z dZ n ddl Z dZ ej ejBZdZe r‚d Znd Zd d „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ú5/usr/lib64/python3.9/multiprocessing/shared_memory.pyÚ_make_filename'src@sˆeZdZdZdZdZdZejZ dZ e r*dndZ ddd„Z d d „Zd d „Zd d„Zedd„ƒZedd„ƒZedd„ƒZdd„Zdd„ZdS)rNéÿÿÿÿi€TFrc Cs„|dkstdƒ‚|r0ttjB|_|dkr0tdƒ‚|durL|jtj@sLtdƒ‚t�rD|duržtƒ}ztj ||j|j d�|_ Wnt y�YqZYn0||_ qÌqZn.|jr¬d|n|}tj ||j|j d�|_ ||_ z<|rä|rät |j |¡t |j ¡}|j}t |j |¡|_Wnt�y&| ¡‚Yn0ddlm}||j d ƒ�n*|�r |du�rZtƒn|}t tjtjtj|d ?d @|d @|¡}zjt ¡}|tjk�rÐ|du�rÀt tj t !tj ¡|tjƒ‚nWt "|¡�qJtjd ||d �|_Wt "|¡n t "|¡0||_ �qn�qJnb||_ t #tj$d|¡}z"t %|tj$ddd¡} Wt "|¡n t "|¡0t &| ¡}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_READWRITEZ GetLastErrorZERROR_ALREADY_EXISTSÚerrnoÚEEXISTÚstrerrorZ CloseHandleZOpenFileMappingZ FILE_MAP_READZ MapViewOfFileZVirtualQuerySizeÚ_sizeÚ memoryviewÚ_buf) Úselfr ÚcreateÚsizeZstatsrZ temp_nameZh_mapZlast_error_codeZp_bufrrrÚ__init__Jsª ý   ý   ú   ü ý ýû zSharedMemory.__init__cCs$z | ¡WntyYn0dS©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|jdur|j ¡d|_|jdur4|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+rrrrr1s&  l     Úutf8c @seZdZedededededdjdiZ dZ dd „d d „d d „d d