ó w®¸Qc@s·ddlZddlZddlZddlmZmZddlmZmZdddddd gZ i ej d 6ej d 6ej d 6ej d 6ejd6ejd6ejd6ejd6ejd6ejd6ejd6ejd6Zd„Zd„Zd„Zd„Zd„Zd„Zdd„Zd„Zd„Z d„Z!d Z"iZ#ej$ƒZ%d!e&fd"„ƒYZ'd#e'fd$„ƒYZ(d%e'fd&„ƒYZ)d'e)fd(„ƒYZ*dS()iÿÿÿÿN(theaptRLock(tassert_spawningtForkingPicklertRawValuetRawArraytValuetArraytcopyt synchronizedtctutbtBthtHtitItltLtftdcCs.tj|ƒ}tj|ƒ}t||dƒS(N(tctypestsizeofRt BufferWrappert rebuild_ctypetNone(ttype_tsizetwrapper((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyt _new_value=scGsTtj||ƒ}t|ƒ}tjtj|ƒdtj|ƒƒ|j|Œ|S(s> Returns a ctypes object allocated from shared memory i(ttypecode_to_typetgetRRtmemsett addressofRt__init__(ttypecode_or_typetargsRtobj((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyRBs  % cCs—tj||ƒ}t|ttfƒrf||}t|ƒ}tjtj|ƒdtj |ƒƒ|S|t |ƒ}t|ƒ}|j |Œ|SdS(s= Returns a ctypes array allocated from shared memory iN( RR t isinstancetinttlongRRR!R"RtlenR#(R$tsize_or_initializerRR&tresult((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyRLs  %  cOs|jddƒ}|r1td|jƒƒ‚nt||Œ}|tkrP|S|tdfkrntƒ}nt|dƒst d|ƒ‚nt ||ƒS(s6 Return a synchronization wrapper for a Value tlocks$unrecognized keyword argument(s): %stacquires'%r' has no method 'acquire'N( tpopRt ValueErrortkeysRtFalsetTrueRthasattrtAttributeErrorR (R$R%tkwdsR-R&((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyR\s  cKs|jddƒ}|r1td|jƒƒ‚nt||ƒ}|tkrP|S|tdfkrntƒ}nt|dƒst d|ƒ‚nt ||ƒS(s9 Return a synchronization wrapper for a RawArray R-s$unrecognized keyword argument(s): %sR.s'%r' has no method 'acquire'N( R/RR0R1RR2R3RR4R5R (R$R+R6R-R&((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyRls  cCs)tt|ƒƒ}|tj|ƒd<|S(Ni(RttypeRtpointer(R&tnew_obj((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyR|scCst|tƒ stdƒ‚t|tjƒr;t||ƒSt|tjƒry|jtjkrlt ||ƒSt ||ƒSt |ƒ}yt |}Wnqt k rg|jD]}|d^q­}td„|Dƒƒ}d|j}t |tf|ƒ}t |st Synchronized(R'tSynchronizedBasetAssertionErrorRt _SimpleCDataR=Rt_type_tc_chartSynchronizedStringtSynchronizedArrayR7t class_cachetKeyErrort_fields_tdictt__name__(R&R-tclstsclstfieldtnamesRt classname((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyR s        !cCsXt|ƒt|tjƒr8t|j|j|jffStt|ƒ|jdffSdS(N( RR'RRRRAt_wrappert_length_R7R(R&((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyt reduce_ctype™s cCsK|dk r||}ntj|tƒ|j|jƒƒ}||_|S(N(RRtregisterRQt from_addresst get_addressRO(RRtlengthR&((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyR s    cBsPy e|SWn=ek rKi}e|fd|U||e|<||SXdS(Ni(t prop_cacheRFttemplate(R<R((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyR:¬s  sÿ 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) R>cBs8eZdd„Zd„Zd„Zd„Zd„ZRS(cCs=||_|ptƒ|_|jj|_|jj|_dS(N(t_objRt_lockR.trelease(tselfR&R-((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyR#Îs cCs t|ƒt|j|jffS(N(RR RXRY(R[((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyt __reduce__Ôs cCs|jS(N(RX(R[((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pytget_objØscCs|jS(N(RY(R[((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pytget_lockÛscCsdt|ƒj|jfS(Ns<%s wrapper for %s>(R7RIRX(R[((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyt__repr__ÞsN(RIt __module__RR#R\R]R^R_(((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyR>Ìs     R=cBseZedƒZRS(tvalue(RIR`R:Ra(((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyR=âsRDcBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCs t|jƒS(N(R*RX(R[((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyt__len__èscCs+|jƒz|j|SWd|jƒXdS(N(R.RXRZ(R[R((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyt __getitem__ës cCs-|jƒz||j|R=RDRC(((s2/sys/lib/python2.7/multiprocessing/sharedctypes.pyt#s:            "