3 \óR ã @ sP d Z ddlZddlZddlZddlZdZdZdZdZdZ dZ d Zd ZdZ e e eee gZe de d edede diZejdƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd „ d eƒZd!d"„ Zd#d$„ Zd/d%d&„Zejd'd(ƒZ defd)d*„Z!G d+d,„ d,eƒZ"G d-d.„ d.eƒZ#dS )0z"Brian Quinlan (brian@sweetapp.com)é NÚFIRST_COMPLETEDÚFIRST_EXCEPTIONÚ ALL_COMPLETEDÚ _AS_COMPLETEDÚPENDINGÚRUNNINGÚ CANCELLEDÚCANCELLED_AND_NOTIFIEDÚFINISHEDÚpendingÚrunningÚ cancelledÚfinishedzconcurrent.futuresc @ s e Zd ZdZdS )ÚErrorz-Base class for all future-related exceptions.N)Ú__name__Ú __module__Ú__qualname__Ú__doc__© r r ú0/usr/lib64/python3.6/concurrent/futures/_base.pyr , s r c @ s e Zd ZdZdS )ÚCancelledErrorzThe Future was cancelled.N)r r r r r r r r r 0 s r c @ s e Zd ZdZdS )ÚTimeoutErrorz*The operation exceeded the given deadline.N)r r r r r r r r r 4 s r c @ s0 e Zd ZdZdd„ Zdd„ Zdd„ Zdd „ Zd S )Ú_Waiterz;Provides the event that wait() and as_completed() block on.c C s t jƒ | _g | _d S )N)Ú threadingZEventÚeventÚfinished_futures)Úselfr r r Ú__init__: s z_Waiter.__init__c C s | j j|ƒ d S )N)r Úappend)r Úfuturer r r Ú add_result> s z_Waiter.add_resultc C s | j j|ƒ d S )N)r r )r r r r r Ú add_exceptionA s z_Waiter.add_exceptionc C s | j j|ƒ d S )N)r r )r r r r r Ú add_cancelledD s z_Waiter.add_cancelledN)r r r r r r r! r" r r r r r 8 s r c sD e Zd ZdZ‡ fdd„Z‡ fdd„Z‡ fdd„Z‡ fdd „Z‡ ZS ) Ú_AsCompletedWaiterzUsed by as_completed().c s t t| ƒjƒ tjƒ | _d S )N)Úsuperr# r r ÚLockÚlock)r )Ú __class__r r r J s z_AsCompletedWaiter.__init__c s0 | j � tt| ƒj|ƒ | jjƒ W d Q R X d S )N)r&