fec@sddlZddlZddlZddlZddlZddlZddlZddlmZm Z ddl m Z dgZ ej dkrddlZGdddeZnGdddeZGd d d eZGd ddeZdS( iN(uFinalizeuinfo(uassert_spawningu BufferWrapperuwin32cBsD|EeZdZejZddZddZddZdS(uArenacCse||_dtjttjf|_tjd|jd|j|_|j|jf|_ dS(Nu pym-%d-%diutagnamei( usizeuosugetpidunextuArenau_counterunameummapubufferu_state(uselfusize((u9/opt/alt/python33/lib64/python3.3/multiprocessing/heap.pyu__init__#s "!uArena.__init__cCst||jS(N(uassert_spawningu_state(uself((u9/opt/alt/python33/lib64/python3.3/multiprocessing/heap.pyu __getstate__*s uArena.__getstate__cCs>|\|_|_|_tjd|jd|j|_dS(Niutagnamei(usizeunameu_stateummapubuffer(uselfustate((u9/opt/alt/python33/lib64/python3.3/multiprocessing/heap.pyu __setstate__.s!uArena.__setstate__N( u__name__u __module__u __qualname__u itertoolsucountu_counteru__init__u __getstate__u __setstate__(u __locals__((u9/opt/alt/python33/lib64/python3.3/multiprocessing/heap.pyuArenas   uArenacBs |EeZdZddZdS(uArenacCs+tjd||_||_d|_dS(Nii(ummapubufferusizeuNoneuname(uselfusize((u9/opt/alt/python33/lib64/python3.3/multiprocessing/heap.pyu__init__7s uArena.__init__N(u__name__u __module__u __qualname__u__init__(u __locals__((u9/opt/alt/python33/lib64/python3.3/multiprocessing/heap.pyuArena5scBs|EeZdZdZejddZeddZddZ dd Z d d Z d d Z ddZ ddZdS(uHeapicCsmtj|_tj|_||_g|_i|_i|_ i|_ t |_ g|_ g|_dS(N(uosugetpidu_lastpidu threadinguLocku_locku_sizeu_lengthsu _len_to_sequ_start_to_blocku_stop_to_blockusetu_allocated_blocksu_arenasu_pending_free_blocks(uselfusize((u9/opt/alt/python33/lib64/python3.3/multiprocessing/heap.pyu__init__Ds       u Heap.__init__cCs|d}|||@S(Ni((unu alignmentumask((u9/opt/alt/python33/lib64/python3.3/multiprocessing/heap.pyu_roundupQs u Heap._roundupc Cstj|j|}|t|jkr|jt|j|tj}|jd9_t d|t |}|j j ||d|fS|j|}|j |}|j}|s|j |=|j|=n|\}}}|j||f=|j||f=|S(Niu"allocating a new mmap of length %di(ubisectu bisect_leftu_lengthsulenu_roundupumaxu_sizeummapuPAGESIZEuinfouArenau_arenasuappendu _len_to_sequpopu_start_to_blocku_stop_to_block( uselfusizeuiulengthuarenausequblockustartustop((u9/opt/alt/python33/lib64/python3.3/multiprocessing/heap.pyu_mallocWs"!      u Heap._mallocc Cs$|\}}}y|j||f}Wntk r:YnX|j|\}}y|j||f}Wntk r{YnX|j|\}}|||f}||}y|j|j|Wn5tk r|g|j| s