Format: application/x-python-code
⬇ Download File (3.5 KB)
   1  o
   2  
   3  �h��@s�dZzddlZWneydZYnwddlZddlZddlZddlZddlZddlm	Z	ddl
   4  mZddlm
   5  Z
   6  Gdd�de�ZGdd	�d	e�ZdS)
   7  zA parent poller for unix.�N)�interrupt_main)�Thread)�
   8  get_loggercs(eZdZdZ�fdd�Zdd�Z�ZS)�ParentPollerUnixzxA Unix-specific daemon thread that terminates the program immediately
   9      when the parent process no longer exists.
  10      cst���d|_dS)zInitialize the poller.TN)�super�__init__�daemon)�self��	__class__��Lc:\Users\shubh\Videos\agent\nova\Lib\site-packages\ipykernel/parentpoller.pyrs
  11  
  12  zParentPollerUnix.__init__c
  13  Csrddlm}	zt��dkrt��d�t�d�t�d�Wnt	y7}z|j|kr2WYd}~q�d}~wwq)zRun the poller.r)�EINTRT��-Parent appears to have exited, shutting down.g�?N)
  14  �errnor�os�getppidr�warning�_exit�time�sleep�OSError)r	r�errr
  15  �runs
  16  
  17  ���zParentPollerUnix.run��__name__�
  18  __module__�__qualname__�__doc__rr�
  19  __classcell__rrr
  20  r
  21  rsrcs*eZdZdZd�fdd�	Zdd�Z�ZS)�ParentPollerWindowsz�A Windows-specific daemon thread that listens for a special event that
  22      signals an interrupt and, optionally, terminates the program immediately
  23      when the parent process no longer exists.
  24      Ncs@|s|sJ�t���tdurd}t|��d|_||_||_dS)a�Create the poller. At least one of the optional parameters must be
  25          provided.
  26  
  27          Parameters
  28          ----------
  29          interrupt_handle : HANDLE (int), optional
  30              If provided, the program will generate a Ctrl+C event when this
  31              handle is signaled.
  32          parent_handle : HANDLE (int), optional
  33              If provided, the program will terminate immediately when this
  34              handle is signaled.
  35          Nz#ParentPollerWindows requires ctypesT)rr�ctypes�ImportErrorr�interrupt_handle�
  36  parent_handle)r	r$r%�msgr
  37  rr
  38  r5s
  39  
  40  zParentPollerWindows.__init__cCs0z
  41  ddlm}m}Wntyddlm}m}Ynwg}|jr'|�|j�|jr0|�|j�t�	�d}|�
  42  d�r>tjntj
  43  }	tjj�t|�|t|�|�d|�}||kr`t|�kr�nn(|||}||jkrytt�tj��rxt�n||jkr�t��d�t�d�n
  44  |dkr�tjdd	d
  45  �dSqB)z-Run the poll loop. This method never returns.r)�INFINITE�
  46  WAIT_OBJECT_0�64TFrrz�Parent poll failed.  If the frontend dies,
  47                  the kernel may be left running.  Please let us know
  48                  about your system (bitness, Python, etc.) at
  49                  ipython-dev@scipy.org�)�
  50  stacklevelN)�_winapir'r(r#Z_subprocessr$�appendr%�platform�architecture�
  51  startswithr"�c_int64�c_int�windll�kernel32�WaitForMultipleObjects�len�callable�signal�	getsignal�SIGINTrrrrr�warnings�warn)r	r'r(Zhandles�archr2�result�handlerrr
  52  rKsH��
  53  �
  54  
  55  ���zParentPollerWindows.run)NNrrrr
  56  r
  57  r!/sr!)rr"r#rr.r8rr;�_threadr�	threadingrZ
  58  traitlets.logrrr!rrrr
  59  �<module>s �