File: //snap/core20/current/usr/share/subiquity/subiquitycore/__pycache__/async_helpers.cpython-38.pyc
U
K��^ � @ sN d dl Z d dlZd dlZe�d�Zdd� Zddd�Zdd � ZG d
d� d�Z dS )
� Nzsubiquitycore.async_helpersc C s( z| � � W n tjk
r" Y nX d S �N)�result�asyncio�CancelledError)Zfut� r �3/usr/share/subiquity/subiquitycore/async_helpers.py�_done s r Tc C sB t �� }t �| �rt �| �}n| }|r0|�t� |�t j|� |S r )r �get_event_loop�iscoroutine�TaskZadd_done_callbackr Z call_soonZ
ensure_future)�coro�propagate_errors�loop�taskr r r �
schedule_task s
r c � sF t �� }z|jd | f|�� I d H W S tjjk
r@ t j�Y nX d S r )r r Zrun_in_executor�
concurrentZfuturesr )�func�argsr r r r �
run_in_thread* s
r c @ s6 e Zd Zd
dd�Zdd� Zdd� Zdd � Zd
d� ZdS )�SingleInstanceTaskTc C s || _ || _d | _d S r )r r
r )�selfr r
r r r �__init__4 s zSingleInstanceTask.__init__c � sF |d k r4|� � z|I d H W n tk
r2 Y nX t| j| j� d S r )Zcancel�
BaseExceptionr r r
)r �oldr r r �_start9 s zSingleInstanceTask._startc � s | j ||�I d H | jS r )�
start_syncr )r r �kwr r r �startB s zSingleInstanceTask.startc O s>