
    h9                        d Z ddlZddlZddlZddlZddlZdZej                  j                  e	      Z
ej                  d   dk  rd Znd Zd Zej                  dk(  r eed	d
      Zd Zyd Zd Zd Zedk(  rI eed      r	  ej,                           e eej0                  dd               ej2                  d       yy# e$ r Y 6w xY w)zSupport for spawning a daemon process.

PyMongo only attempts to spawn the mongocryptd daemon process when automatic
client-side field level encryption is enabled. See
:ref:`automatic-client-side-encryption` for more info.
    N
      c                     ddl m}  |       |z   }d}	 | j                         }||S | |       z
  }|dk  ryt        |dz  |d      }t        j                  |       J)z,Implement wait timeout support for Python 2.r   )timegMb@?N   g      ?)pymongo.monotonicr   pollminsleep)popentimeout_timedeadlinedelay
returncode	remainings          L/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/pymongo/daemon.py_popen_waitr   #   si    37W$J%!! 57*IA~	9c2EJJu     c                 Z    	 | j                  |      S # t        j                  $ r Y yw xY w)z,Implement wait timeout support for Python 3.)r   N)wait
subprocessTimeoutExpired)r   r   s     r   r   r   9   s0    	::g:..(( 		s    **c                     | d| _         yy)zpSilence Popen's ResourceWarning.

    Note this should only be used if the process was created as a daemon.
    Nr   )r   )r   s    r   _silence_resource_warningr   B   s      r   win32DETACHED_PROCESS   c                 ,   	 t        t        j                  d      5 }t        j                  | t
        |||      }t        |       ddd       y# 1 sw Y   yxY w# t        $ r/}t        j                  d| d   d|t        d       Y d}~yd}~ww xY w)	z!Spawn a daemon process (Windows).r+b)creationflagsstdinstderrstdoutNFailed to start r   +: is it on your $PATH?
Original exception: r   
stacklevel)openosdevnullr   Popen_DETACHED_PROCESSr   FileNotFoundErrorwarningswarnRuntimeWarning)argsr+   r   excs       r   _spawn_daemonr4   T   s    	bjj%( 1G"(("3!"" *%01 1 1 ! 	MM,0GS:	 	s4   A *AA AA A 	B$%BBc                    	 t        t        j                  d      5 }t        j                  | d|||      cddd       S # 1 sw Y   yxY w# t
        $ r/}t        j                  d| d   d|t        d	       Y d}~yd}~ww xY w)
z,Spawn the process and silence stdout/stderr.r    T)	close_fdsr"   r#   r$   Nr%   r   r&   r   r'   )	r)   r*   r+   r   r,   r.   r/   r0   r1   )r2   r+   r3   s      r   _spawnr7   u   s|    	bjj%( G!''DPW   ! 	MM,0GS:	 	s3   A A 	A  A	A 	A 	B%A??Bc                     t         j                  t        g}|j                  |        t	        j
                  |d      }t        |t               y)z7Spawn a daemon process using a double subprocess.Popen.T)r6   N)sys
executable
_THIS_FILEextendr   r,   r   _WAIT_TIMEOUT)r2   spawner_args	temp_procs      r   _spawn_daemon_double_popenr@      s<    
3D!$$\TB	 	I}-r   c                 R    t         j                  rt        |        yt        |        y)zSpawn a daemon process (Unix).N)r9   r:   r@   r7   )r2   s    r   r4   r4      s     >>&t, 4Lr   __main__setsid   )__doc__r*   r   r9   r   r/   r=   pathrealpath__file__r;   version_infor   r   platformgetattrr-   r4   r7   r@   __name__hasattrrC   OSErrorargv_exit r   r   <module>rR      s    
  
   WWh'
 A, <<7
,>
KB." :2x 		 	"&!""67 
  s   C CC