o
    ÕÜg©  ã                   @   s  d Z ddlZdZdZdZe ¡ Zg Zdd„ Zdd„ Z	G dd„ dejƒZ
G d	d
„ d
ejƒZG dd„ dejƒZe
eƒZeedZee	eƒZe ¡ Ze def¡ e ¡  e dejdejdejf¡ ejseJ ‚ejsjJ ‚ejroJ ‚e ¡ Ze def¡ ejsJ ‚edeƒ dS )z<
Testing initialstub throwing an already started exception.
é    Nc                  G   s   t  d| f¡ d S )NzBegin A)ÚresultsÚappend)Úargs© r   úi/var/www/html/api-tag/env/lib/python3.10/site-packages/greenlet/tests/fail_initialstub_already_started.pyÚa_run   s   r   c                   C   s"   t  d¡ t d¡ t  d¡ d S )NzBegin CzFrom CzC done)r   r   ÚbÚswitchr   r   r   r   Úc_run   s   

r
   c                   @   ó   e Zd ZdS )ÚAN©Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r      s    r   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚBFc                 C   st   |dkr.| j s.t ¡ tu sJ ‚d| _ t dtt ¡ ƒj ¡ t 	¡  t dtt ¡ ƒj ¡ |dkr4d}t
 | |¡S )NÚrunTz'Switch to b from B.__getattribute__ in z%B.__getattribute__ back from main in Ú_B_run)Údoing_itÚgreenletÚ
getcurrentÚcr   r   Útyper   r   r	   ÚobjectÚ__getattribute__)ÚselfÚnamer   r   r   r       s   ÿÿzB.__getattribute__c                 G   s&   t  d|f¡ t  d¡ t d¡ d S )NzBegin Bz_B_run switching to mainzFrom B)r   r   Úmainr	   )r   Úargr   r   r   r   -   s   
zB._B_runN)r   r   r   r   r   r   r   r   r   r   r      s    r   c                   @   r   )ÚCNr   r   r   r   r   r   2   s    r   )Úparentzmain from czA dead?zB dead?zC dead?zmain from c.2zRESULTS:)Ú__doc__r   Úar   r   r   r   r   r   r
   r   r   r   r	   Úresultr   ÚdeadÚprintr   r   r   r   Ú<module>   s4    





