def heartbeat_thread_main()

in nailgun-client/py/ng.py [0:0]


def heartbeat_thread_main(conn):
    """
    Heartbeat thread worker function
    Periodically sends heartbeats to server as long as command is running
    """
    try:
        while True:
            with conn.heartbeat_condition:
                if conn.shutdown_event.is_set():
                    return
                conn.heartbeat_condition.wait(conn.heartbeat_interval_sec)
                if conn.shutdown_event.is_set():
                    return
            conn._send_heartbeat()

    except Exception as e:
        # save exception to rethrow on main thread
        with conn.error_lock:
            conn.error = e
            conn.error_traceback = sys.exc_info()[2]
        conn.shutdown_event.set()