grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a ´i¢ã@s:ddlZddlZddlmZddlmZddlmZmZejZ gd¢Z ej ej ej ejejejejejejejejejejejdœZdd „Zd d „Zd d „Zdddœdd„Zdddœdd„Zdd„Zd'dd„Z dd„Z!dd„Z"dd„Z#dZ$iZ%e &¡Z'Gdd „d e(ƒZ)Gd!d"„d"e)ƒZ*Gd#d$„d$e)ƒZ+Gd%d&„d&e+ƒZ,dS)(éNé)Úheap)Ú get_context)Ú reductionÚassert_spawning)ÚRawValueÚRawArrayÚValueÚArrayÚcopyÚ synchronized)ÚcÚuÚbÚBÚhÚHÚiÚIÚlÚLÚqÚQÚfÚdcCs t |¡}t |¡}t||dƒS©N)ÚctypesÚsizeofrÚ BufferWrapperÚ rebuild_ctype)Útype_ÚsizeÚwrapper©r#ú4/usr/lib64/python3.9/multiprocessing/sharedctypes.pyÚ _new_value's  r%cGs<t ||¡}t|ƒ}t t |¡dt |¡¡|j|Ž|S©Nr)Útypecode_to_typeÚgetr%rÚmemsetÚ addressofrÚ__init__)Útypecode_or_typeÚargsr Úobjr#r#r$r,s   rcCsjt ||¡}t|tƒrD||}t|ƒ}t t |¡dt |¡¡|S|t |ƒ}t|ƒ}|j |Ž|SdSr&) r'r(Ú isinstanceÚintr%rr)r*rÚlenr+)r,Úsize_or_initializerr r.Úresultr#r#r$r6s    rT)ÚlockÚctxcGsZt|g|¢RŽ}|dur|S|dvr6|p,tƒ}| ¡}t|dƒsLtd|ƒ‚t|||d�S©NF)TNÚacquirez%r has no method 'acquire')r5)rrÚRLockÚhasattrÚAttributeErrorr )r,r4r5r-r.r#r#r$r Fs   r cCsTt||ƒ}|dur|S|dvr0|p&tƒ}| ¡}t|dƒsFtd|ƒ‚t|||d�Sr6)rrr8r9r:r )r,r2r4r5r.r#r#r$r Ts    r cCstt|ƒƒ}|t |¡d<|Sr&)r%ÚtyperZpointer)r.Znew_objr#r#r$r bs r cCsÈ|ptƒ}t|tjƒr"t|||ƒSt|tjƒrR|jtjurFt|||ƒSt |||ƒSt |ƒ}z t |}WnPt y¶dd„|j Dƒ}dd„|Dƒ}d|j}t |tf|ƒ}t |<Yn0||||ƒSdS)NcSsg|] }|d‘qS)rr#)Ú.0Zfieldr#r#r$Ú vóz synchronized..cSsi|]}|t|ƒ“qSr#)Ú make_property)r<Únamer#r#r$Ú wr>z synchronized..Ú Synchronized)rr/rZ _SimpleCDatarBr Ú_type_Úc_charÚSynchronizedStringÚSynchronizedArrayr;Ú class_cacheÚKeyErrorZ_fields_Ú__name__ÚSynchronizedBase)r.r4r5ÚclsZsclsÚnamesrZ classnamer#r#r$r gs           r cCs@t|ƒt|tjƒr(t|j|j|jffStt|ƒ|jdffSdSr) rr/rr rrCÚ_wrapperZ_length_r;)r.r#r#r$Ú reduce_ctype€s rNcCs8|dur||}t |t¡| ¡}| |¡}||_|Sr)Ú_ForkingPicklerÚregisterrNÚcreate_memoryviewZ from_bufferrM)r r"ÚlengthÚbufr.r#r#r$r‡s  rcCsNz t|WStyHi}tt|fd|ƒ||t|<||YS0dS)Né)Ú prop_cacherHÚexecÚtemplate)r@rr#r#r$r?”s   r?zÿ def get%s(self): self.acquire() try: return self._obj.%s finally: self.release() def set%s(self, value): self.acquire() try: self._obj.%s = value finally: self.release() %s = property(get%s, set%s) c@sFeZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dS)rJNcCsB||_|r||_n|ptdd�}| ¡|_|jj|_|jj|_dS)NT)Úforce)Ú_objÚ_lockrr8r7Úrelease)Úselfr.r4r5r#r#r$r+¶s  zSynchronizedBase.__init__cCs |j ¡Sr)rZÚ __enter__©r\r#r#r$r]ÀszSynchronizedBase.__enter__cGs |jj|ŽSr)rZÚ__exit__)r\r-r#r#r$r_ÃszSynchronizedBase.__exit__cCst|ƒt|j|jffSr)rr rYrZr^r#r#r$Ú __reduce__ÆszSynchronizedBase.__reduce__cCs|jSr©rYr^r#r#r$Úget_objÊszSynchronizedBase.get_objcCs|jSr)rZr^r#r#r$Úget_lockÍszSynchronizedBase.get_lockcCsdt|ƒj|jfS)Nz<%s wrapper for %s>)r;rIrYr^r#r#r$Ú__repr__ÐszSynchronizedBase.__repr__)NN) rIÚ __module__Ú __qualname__r+r]r_r`rbrcrdr#r#r#r$rJ´s rJc@seZdZedƒZdS)rBÚvalueN)rIrerfr?rgr#r#r#r$rBÔsrBc@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) rFcCs t|jƒSr)r1rYr^r#r#r$Ú__len__ÚszSynchronizedArray.__len__cCs2|�|j|WdƒS1s$0YdSrra)r\rr#r#r$Ú __getitem__ÝszSynchronizedArray.__getitem__cCs2|�||j|<Wdƒn1s$0YdSrra)r\rrgr#r#r$Ú __setitem__ászSynchronizedArray.__setitem__cCs6|�|j||…WdƒS1s(0YdSrra)r\ÚstartÚstopr#r#r$Ú __getslice__åszSynchronizedArray.__getslice__cCs6|�||j||…<Wdƒn1s(0YdSrra)r\rkrlÚvaluesr#r#r$Ú __setslice__észSynchronizedArray.__setslice__N)rIrerfrhrirjrmror#r#r#r$rFØs rFc@seZdZedƒZedƒZdS)rErgÚrawN)rIrerfr?rgrpr#r#r#r$rEîsrE)NN)-rÚweakrefÚrrÚcontextrrÚForkingPicklerrOÚ__all__rDZc_wcharZc_byteZc_ubyteZc_shortZc_ushortZc_intZc_uintZc_longZc_ulongZ c_longlongZ c_ulonglongZc_floatZc_doubler'r%rrr r r r rNrr?rWrUÚWeakKeyDictionaryrGÚobjectrJrBrFrEr#r#r#r$Ú s>  ù