� {fc@sgZddlZddlZddlZddlZddlZddlmZddlm Z m Z m Z m Z ddl mZmZmZddlmZmZejdkp�eed�s�ed��nejdkrddlZdd lmZd �Zd �Znd �Zd �Ze�ad�Zed�eee�d�Zd�Z d�Z!d�Z"d�Z#d�Z$e j%ej&e#�dd�Z'd�Z(d�Z)e j%eje(�ejdkr�d�Z*d�Z+e j%ej,e*�ndS(i����N(tcurrent_process(tPopent duplicatetclosetForkingPickler(tregister_after_forktdebugt sub_debug(tClienttListenertwin32trecvfds%pickling of connections not supported(R cCsJtjtjt|�}z t||�}|j|�Wdt|�XdS(N(R t OpenProcesstPROCESS_ALL_ACCESStFalseRtsendR(tconnthandletdestination_pidtprocess_handlet new_handle((s1/usr/lib64/python2.7/multiprocessing/reduction.pyt send_handleAs cCs |j�S(N(trecv(R((s1/usr/lib64/python2.7/multiprocessing/reduction.pyt recv_handleKscCstj|j�|�dS(N(t_multiprocessingtsendfdtfileno(RRR((s1/usr/lib64/python2.7/multiprocessing/reduction.pyROscCstj|j��S(N(RR R(R((s1/usr/lib64/python2.7/multiprocessing/reduction.pyRRscCs;xtD]}t|�qWtj�tj�adadS(N(t_cacheRtcleart threadingtLockt_locktNonet _listener(tobjth((s1/usr/lib64/python2.7/multiprocessing/reduction.pyt_reset[s    cCs�tdkr~tj�zWtdkrltd�tdt�j�atj dt �}t |_ |j �nWdtj�XntS(Ns0starting listener and thread for sending handlestauthkeyttarget(R!R RtacquireRR RR%RtThreadt_servetTruetdaemontstarttrelease(tt((s1/usr/lib64/python2.7/multiprocessing/reduction.pyt _get_listenerfs     cCs�ddlm}m}x�yStj�}|j�\}}tj|�t|||�t |�|j �Wq|�s�ddl }|dddd|j �dd�q�qXqWdS(Ni(t is_exitingt sub_warningi����s.thread for sharing handles raised exception : t-iOs ( tutilR0R1R!tacceptRRtremoveRRt tracebackt format_exc(R0R1Rt handle_wantedRR6((s1/usr/lib64/python2.7/multiprocessing/reduction.pyR)ws     cCs[tj�r"dtj|�tfSt|�}tj|�td|�t �j |t fS(Nsreducing handle %d( Rtthread_is_spawningR tduplicate_for_childR*RRtaddRR/taddressR(Rt dup_handle((s1/usr/lib64/python2.7/multiprocessing/reduction.pyt reduce_handle�s     cCsq|\}}}|r|Std|�t|dt�j�}|j|tj�f�t|�}|j�|S(Nsrebuilding handle %dR%( RRRR%RtostgetpidRR(t pickled_dataR<Rt inheritedRR((s1/usr/lib64/python2.7/multiprocessing/reduction.pytrebuild_handle�s   cCs+t|j��}t||j|jffS(N(R>Rtrebuild_connectiontreadabletwritable(Rtrh((s1/usr/lib64/python2.7/multiprocessing/reduction.pytreduce_connection�scCs%t|�}tj|d|d|�S(NRERF(RCRt Connection(treduced_handleRERFR((s1/usr/lib64/python2.7/multiprocessing/reduction.pyRD�s icCsCtj||||�}|jtjk r?tjd|�}n|S(Nt_sock(tsockettfromfdt __class__(tfdtfamilyttype_tprotots((s1/usr/lib64/python2.7/multiprocessing/reduction.pyRM�scCs1t|j��}t||j|j|jffS(N(R>Rtrebuild_socketRPttypeRR(RSRJ((s1/usr/lib64/python2.7/multiprocessing/reduction.pyt reduce_socket�scCs/t|�}t||||�}t|�|S(N(RCRMR(RJRPRQRRRORK((s1/usr/lib64/python2.7/multiprocessing/reduction.pyRT�s  cCs+t|j��}t||j|jffS(N(R>Rtrebuild_pipe_connectionRERF(RRG((s1/usr/lib64/python2.7/multiprocessing/reduction.pytreduce_pipe_connection�scCs%t|�}tj|d|d|�S(NRERF(RCRtPipeConnection(RJRERFR((s1/usr/lib64/python2.7/multiprocessing/reduction.pyRW�s (-t__all__R?tsysRLRRtmultiprocessingRtmultiprocessing.forkingRRRRtmultiprocessing.utilRRRtmultiprocessing.connectionRR tplatformthasattrt ImportErrort _subprocessR RRtsetRR$R R/R)R>RCRHRDtregisterRIRMRVRTRXRWRY(((s1/usr/lib64/python2.7/multiprocessing/reduction.pyt$sJ     "