o
    [h                     @   s>   d dl Z d dlZd dlmZ G dd dZG dd deZdS )    N)run_in_threadpoolc                   @   s6   e Zd ZdejdejdejddfddZd
dd	ZdS )BackgroundTaskfuncargskwargsreturnNc                 O   s"   || _ || _|| _t|| _d S N)r   r   r   asyncioiscoroutinefunctionis_async)selfr   r   r    r   {/home/ubuntu/experiments/live_experiments/Pythonexperiments/Otree/venv/lib/python3.10/site-packages/starlette/background.py__init__   s   zBackgroundTask.__init__c                    sL   | j r| j| ji | jI d H  d S t| jg| jR i | jI d H  d S r   )r   r   r   r   r   )r   r   r   r   __call__   s   &zBackgroundTask.__call__r   N)__name__
__module____qualname__typingCallableAnyr   r   r   r   r   r   r      s    
r   c                   @   sN   e Zd Zg fdeje fddZdejdejdejddfd	d
Z	dddZ
dS )BackgroundTaskstasksc                 C   s   t || _d S r   )listr   )r   r   r   r   r   r      s   zBackgroundTasks.__init__r   r   r   r   Nc                 O   s&   t |g|R i |}| j| d S r   )r   r   append)r   r   r   r   taskr   r   r   add_task   s   zBackgroundTasks.add_taskc                    s   | j D ]}| I d H  qd S r   )r   )r   r   r   r   r   r   !   s   
zBackgroundTasks.__call__r   )r   r   r   r   Sequencer   r   r   r   r   r   r   r   r   r   r      s    
r   )r	   r   Zstarlette.concurrencyr   r   r   r   r   r   r   <module>   s
    