Format: application/x-python-code
1 o
2
3 �h� � @ sT d Z ddlZddlZddlmZ ddlmZ ddlZddlm Z G dd� de�Z
4 dS )z=The client and server for a basic ping-pong style heartbeat.
5 � N)�Path)�Thread)� localhostc @ s: e Zd ZdZd
6 dd�Zdd� Zdd� Zd d
7 � Zdd� ZdS )� Heartbeatz9A simple ping-pong style heartbeat that runs in a thread.Nc C s| |du r
8 dt � df}tj| dd� || _|\| _| _| _| j| _| jdkr)| �� | j| jf| _ d| _
9 d| _d| _d| _
10 dS )z Initialize the heartbeat thread.N�tcpr r )�nameT)r r �__init__�context� transport�ip�port�
11 original_port� pick_port�addr�daemonZpydev_do_not_traceZis_pydev_daemon_threadr )�selfr r � r �Ic:\Users\shubh\Videos\agent\nova\Lib\site-packages\ipykernel/heartbeat.pyr s
12
13 zHeartbeat.__init__c C s� | j dkr&t�� }|�| jdkrdn| jdf� |�� d | _|�� | jS | j dkrQd| _t| j� d| j� ���� rN| jd | _t| j� d| j� ���� s;| jS t d| j ��) zPick a port for the heartbeat.r �*� r � Zipc�-zUnrecognized zmq transport: %s)
14 r
15 �socket�bindr �getsocknamer �closer �exists�
16 ValueError)r �sr r r r / s
17
18 ���zHeartbeat.pick_portc C s: | j dkrdnd}| j�| j � d| j� �| t| j� �S )Nr �:r z://)r
19 r r r �strr )r �cr r r �_try_bind_socket? s (zHeartbeat._try_bind_socketc C s� zt j}W n ty d }Y nw | jrdnd}t|�D ];}z| �� W d S tjyW } z$||d kr6� |j t jkrB|j |krB� | jdkrL| � � n� W Y d }~qd }~ww d S )Nr �d r )
20 �errnoZ
21 WSAEADDRINUSE�AttributeErrorr
22 �ranger"