
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
ó
{fc           @   s  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l m Z m Z d d d d d d g Z d	 „  Z d  d
 l	 m
 Z
 d e
 f d „  ƒ  YZ d „  Z e j e e j ƒ e ƒ d „  Z e j e e j ƒ e ƒ e j e e j ƒ e ƒ y d  d l m Z Wn e k
 rn# Xd „  Z d „  Z e j e e ƒ e j d k rƒd  d l Z e  j Z e  j Z e  j  Z  d e! f d „  ƒ  YZ" n}d  d l# Z# d  d l$ Z$ d  d l% Z% d  d l Z d  d l& m' Z' m( Z( m) Z) d d l m* Z* d  d l	 m+ Z+ m, Z, d d „ Z. d Z/ e j d k o%e0 e d e1 ƒ Z2 e j3 j4 ƒ  j5 d ƒ Z6 e' j7 Z e' j8 Z  e6 rse  j9 j: e j; d ƒ a< n	 e j3 a< d „  Z= d e1 d „ Z d e! f d „  ƒ  YZ" d „  Z> d  „  Z? d! „  Z@ d" „  ZA d# „  ZB d$ „  ZC e j e( eC ƒ e j e) eC ƒ g  ZD d% „  ZE d S(&   iÿÿÿÿN(   t   utilt   processt   Popent   assert_spawningt   exitt	   duplicatet   closet   ForkingPicklerc         C   s,   t  j ƒ  s( t d t |  ƒ j ƒ ‚ n  d  S(   NsF   %s objects should only be shared between processes through inheritance(   R   t   thread_is_spawningt   RuntimeErrort   typet   __name__(   t   self(    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyR   0   s    (   t   Picklerc           B   s&   e  Z e j j ƒ  Z e d  „  ƒ Z RS(   c            s    ‡  f d †  } | |  j  | <d  S(   Nc            s#   ˆ  | ƒ } |  j  d | | Œ d  S(   Nt   obj(   t   save_reduce(   R   R   t   rv(   t   reduce(    s/   /usr/lib64/python2.7/multiprocessing/forking.pyt
   dispatcherA   s    (   t   dispatch(   t   clsR
   R   R   (    (   R   s/   /usr/lib64/python2.7/multiprocessing/forking.pyt   register?   s    (   R   t
   __module__R   R   t   copyt   classmethodR   (    (    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyR   <   s   c         C   sE   |  j  d  k r( t |  j |  j j f f St |  j  |  j j f f Sd  S(   N(   t   im_selft   Nonet   getattrt   im_classt   im_funct	   func_name(   t   m(    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyt   _reduce_methodF   s    c         C   s   t  |  j |  j f f S(   N(   R   t   __objclass__R   (   R   (    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyt   _reduce_method_descriptorM   s    (   t   partialc         C   s"   t  |  j |  j |  j p i  f f S(   N(   t   _rebuild_partialt   funct   argst   keywords(   t   p(    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyt   _reduce_partial\   s    c         C   s   t  |  | | Ž S(   N(   R#   (   R%   R&   R'   (    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyR$   ^   s    t   win32c           B   sD   e  Z d  „  Z e j d „ Z d d „ Z d „  Z e	 d „  ƒ Z
 RS(   c         C   s£   t  j j ƒ  t  j j ƒ  d  |  _ t j ƒ  |  _ |  j d k rŸ d t  j	 k ri d d  l
 } | j ƒ  n  | j ƒ  } t  j j ƒ  t  j j ƒ  t j | ƒ n  d  S(   Ni    t   randomiÿÿÿÿ(   t   syst   stdoutt   flusht   stderrR   t
   returncodet   ost   forkt   pidt   modulesR+   t   seedt
   _bootstrapt   _exit(   R   t   process_objR+   t   code(    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyt   __init__t   s    	c         C   sÖ   |  j  d  k rÏ x\ t rm y t j |  j | ƒ \ } } Wn/ t j k
 rh } | j t j k rd q n  d  SXPq W| |  j k rÏ t j	 | ƒ r¢ t j
 | ƒ |  _  qÌ t j | ƒ s· t ‚ t j | ƒ |  _  qÏ n  |  j  S(   N(   R0   R   t   TrueR1   t   waitpidR3   t   errort   errnot   EINTRt   WIFSIGNALEDt   WTERMSIGt	   WIFEXITEDt   AssertionErrort   WEXITSTATUS(   R   t   flagR3   t   stst   e(    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyt   pollƒ   s    	c         C   s™   | d  k r |  j d ƒ St j ƒ  | } d } xc |  j ƒ  } | d  k	 rN Pn  | t j ƒ  } | d k rn Pn  t | d | d ƒ } t j | ƒ q2 W| S(   Ni    gü©ñÒMb@?i   gš™™™™™©?(   R   RH   t   timet   mint   sleep(   R   t   timeoutt   deadlinet   delayt   rest	   remaining(    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyt   wait˜   s    c         C   sd   |  j  d  k r` y t j |  j t j ƒ Wq` t k
 r\ } |  j d d ƒ d  k r] ‚  q] q` Xn  d  S(   NRL   gš™™™™™¹?(	   R0   R   R1   t   killR3   t   signalt   SIGTERMt   OSErrorRQ   (   R   RG   (    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyt	   terminate¨   s    c           C   s   t  S(   N(   t   False(    (    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyR   °   s    N(   R   R   R:   R1   t   WNOHANGRH   R   RQ   RV   t   staticmethodR   (    (    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyR   r   s
   		(   R*   t
   Connectiont   PipeConnectioni   (   t   Finalize(   t   loadt   HIGHEST_PROTOCOLc         C   s   t  | | ƒ j |  ƒ d  S(   N(   R   t   dump(   R   t   filet   protocol(    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyR_   Æ   s    i   t   frozens   pythonservice.exes
   python.exec         C   s
   |  a  d  S(   N(   t   _python_exe(   t   exe(    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyt   set_executableÞ   s    c         C   sF   | d  k r t j ƒ  } n  t j t j ƒ  |  | d | t j ƒ j ƒ  S(   Ni    (   R   t   _subprocesst   GetCurrentProcesst   DuplicateHandlet   DUPLICATE_SAME_ACCESSt   Detach(   t   handlet   target_processt   inheritable(    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyR   æ   s
    c           B   s_   e  Z d  Z e j ƒ  Z d „  Z e d „  ƒ Z e d „  ƒ Z	 d d „ Z d „  Z d „  Z RS(   sH   
        Start a subprocess to run the code of a process object
        c      
   C   s7  t  j ƒ  \ } } t t j | ƒ d t ƒ} t  j | ƒ t ƒ  | g } d j d „  | Dƒ ƒ } t	 j
 t | d  d  d d d  d  d  ƒ	 \ } } } }	 | j ƒ  t | ƒ | |  _ d  |  _ | |  _ t | j ƒ }
 t  j | d ƒ } t | ƒ t j _ z$ t |
 | t ƒ t | | t ƒ Wd  t j ` | j ƒ  Xd  S(   NRm   t    c         s   s   |  ] } d  | Vq d S(   s   "%s"N(    (   t   .0t   x(    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pys	   <genexpr>  s    i   i    t   wb(   R1   t   pipeR   t   msvcrtt   get_osfhandleR;   R   t   get_command_linet   joinRf   t   CreateProcessRc   R   t   CloseR3   R0   t   _handlet   get_preparation_datat   _namet   fdopent   intR   t   _tlst   process_handleR_   R^   (   R   R8   t   rfdt   wfdt   rhandlet   cmdt   hpt   htR3   t   tidt	   prep_datat   to_child(    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyR:   ù   s(    -

				c           C   s   t  t j d d  ƒ d  k	 S(   NR   (   R   R   R~   R   (    (    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyR     s    c         C   s   t  |  t j j ƒ S(   N(   R   R   R~   R   (   Rk   (    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyt   duplicate_for_child  s    c         C   s¯   |  j  d  k r¨ | d  k r' t j } n t d t | d d ƒ ƒ } t j t |  j ƒ | ƒ } | t j k r¨ t j	 |  j ƒ } | t
 k r™ t j } n  | |  _  q¨ n  |  j  S(   Ni    iè  g      à?(   R0   R   Rf   t   INFINITEt   maxR}   t   WaitForSingleObjectRy   t   WAIT_OBJECT_0t   GetExitCodeProcesst	   TERMINATERS   RT   (   R   RL   t   msecsRO   R9   (    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyRQ   "  s    c         C   s   |  j  d d ƒ S(   NRL   i    (   RQ   (   R   (    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyRH   2  s    c         C   se   |  j  d  k ra y t j t |  j ƒ t ƒ Wqa t k
 r] |  j d d ƒ d  k r^ ‚  q^ qa Xn  d  S(   NRL   gš™™™™™¹?(	   R0   R   Rf   t   TerminateProcessR}   Ry   R�   t   WindowsErrorRQ   (   R   (    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyRV   5  s    N(   R   R   t   __doc__t   threadt   _localR~   R:   RY   R   R‰   R   RQ   RH   RV   (    (    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyR   ó   s   	!	c         C   sF   t  |  ƒ d k r> |  d d k r> t  |  ƒ d k s: t ‚ t St Sd S(   sE   
        Return whether commandline indicates we are forking
        i   i   s   --multiprocessing-forki   N(   t   lenRC   R;   RW   (   t   argv(    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyt
   is_forkingA  s    "c           C   s'   t  t j ƒ r# t ƒ  t j ƒ  n  d S(   sM   
        Run code for process object if this in not the main process
        N(   R˜   R,   R—   t   mainR   (    (    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyt   freeze_supportL  s    c          C   st   t  t j ƒ  d t ƒ r' t d ƒ ‚ n  t  t d t ƒ rF t j d g Sd }  t j ƒ  } t	 g | d |  d g Sd S(   sR   
        Returns prefix of command line used for spawning a child process
        t   _inheritings÷  
            Attempt to start a new process before the current process
            has finished its bootstrapping phase.

            This probably means that you are on Windows and you have
            forgotten to use the proper idiom in the main module:

                if __name__ == '__main__':
                    freeze_support()
                    ...

            The "freeze_support()" line can be omitted if the program
            is not going to be frozen to produce a Windows executable.Rb   s   --multiprocessing-forks0   from multiprocessing.forking import main; main()s   -cN(
   R   R   t   current_processRW   R	   R,   t
   executableR    t   _args_from_interpreter_flagsRc   (   t   progt   opts(    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyRu   U  s    c          C   s³   t  t j ƒ s t ‚ t t j d ƒ }  t j |  t j ƒ } t j	 | d ƒ } t
 t j ƒ  _ t | ƒ } t | ƒ t | ƒ } t t j ƒ  _ | j ƒ  | j ƒ  } t | ƒ d S(   s?   
        Run code specified by data received over pipe
        iÿÿÿÿt   rbN(   R˜   R,   R—   RC   R}   Rs   t   open_osfhandleR1   t   O_RDONLYR|   R;   R   Rœ   R›   R]   t   prepareRW   R   R6   R   (   Rk   t   fdt   from_parentt   preparation_dataR   t   exitcode(    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyR™   p  s    

c         C   sL  d d l  m } m } t d |  d t j d t j d | d t j d t j	 ƒ  j
 ƒ } | d k	 rt | j ƒ  | d	 <n  t rHt rH| d d
 j ƒ  j d ƒ rHt t j d d d ƒ } | rã t j d
 d k rã t j d
 } n  | d k	 rHt j j | ƒ r,t j d k	 r,t j j t j | ƒ } n  t j j | ƒ | d <qHn  | S(   sU   
        Return info about parent needed by child to unpickle process object
        i   (   t   _loggert   _log_to_stderrt   namet   sys_patht   sys_argvt   log_to_stderrt   orig_dirt   authkeyt	   log_leveli    s   pythonservice.exet   __main__t   __file__t    s   -ct	   main_pathN(   R´   s   -c(   R    R©   Rª   t   dictR,   t   pathR—   R   t   ORIGINAL_DIRRœ   R°   R   t   getEffectiveLevelt   WINEXEt
   WINSERVICEt   lowert   endswithR   R4   R1   t   isabsRv   t   normpath(   R«   R©   Rª   t   dRµ   (    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyRz   †  s*    			c         C   sV   t  j ƒ  s( t d t |  ƒ j ƒ ‚ n  t |  ƒ t  j |  j ƒ  ƒ |  j |  j f f S(   NsL   By default %s objects can only be shared between processes
using inheritance(	   R   R   R	   R
   R   R‰   t   filenot   readablet   writable(   t   conn(    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyt   reduce_connection©  s    c   
      C   sö  t  j t j d ƒ d |  k r6 |  d t j ƒ  _ n  d |  k rX |  d t j ƒ  _ n  d |  k r{ |  d r{ t j	 ƒ  n  d |  k r¡ t j
 ƒ  j |  d ƒ n  d |  k r½ |  d t _ n  d |  k rÙ |  d t _ n  d |  k rù t j |  d ƒ n  d	 |  k r|  d	 t _ n  d
 |  k rò|  d
 } t j j t j j | ƒ ƒ d } | d k rzt j j t j j | ƒ ƒ } n  | d k rŸt j d } | | _ qò| d k ròd d l } | d k rÌd } nT t j j | ƒ j d ƒ rt j j t j j | ƒ ƒ g } n t j j | ƒ g } | t j k s;t | ƒ ‚ | j | | ƒ \ } } } z | j d | | | ƒ } Wd | rˆ| j ƒ  n  X| t j d <d | _ xM | j j ƒ  D]9 }	 y |	 j d k rÓd |	 _ n  Wq¯t  k
 rçq¯Xq¯Wqòn  d S(   sE   
    Try to get current process ready to unpickle process object
    R²   R«   R°   R®   R±   R¬   R­   t   dirR¯   Rµ   i    R:   t   ipythoniÿÿÿÿNs   __init__.pyt   __parents_main__(!   t   old_main_modulest   appendR,   R4   R   Rœ   R«   t   _authkeyR    R®   t
   get_loggert   setLevelR·   R—   R1   t   chdirR¸   t   splitextt   basenamet   dirnameR³   t   impR   t
   startswithRC   t   find_modulet   load_moduleR   R   t   __dict__t   valuesR   t	   Exception(
   t   dataRµ   t	   main_namet   main_moduleRÒ   t   dirsR`   t	   path_namet   etcR   (    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyR¤   »  s^    
"!	$	(F   R1   R,   RS   R>   t   multiprocessingR    R   t   __all__R   t   pickleR   R   R    R   R
   t   saveR"   t   listRÊ   R}   t   __add__t	   functoolsR#   t   ImportErrorR)   R$   t   platformRI   R7   R   t   dupR   R   t   objectR   R”   Rs   Rf   t   _multiprocessingR*   RZ   R[   R\   R]   R^   R   R_   R�   R   RW   Rº   R�   R¼   R½   R»   t   ExitProcesst   CloseHandleR·   Rv   t   exec_prefixRc   Re   R˜   Rš   Ru   R™   Rz   RÅ   RÉ   R¤   (    (    (    s/   /usr/lib64/python2.7/multiprocessing/forking.pyt   <module>#   sn   	
							G!				N						#		