§
    VøÁij  ã                   ód   — d dl Z d dlZd dlZddlmZ ddlmZ ej        sJ ‚ G d„ de¦  «        ZdS )é    Né   )ÚTestCase)Úfails_leakcheckc                   ó6   — e Zd Zd„ Zd„ Zd„ Zed„ ¦   «         ZdS )ÚTestGCc                 ó°  — t          j        t          j        t          j        ¦  «                             ¦   «         ¦  «        }t          j        ¦   «           |¦   «         �/dd l}t          d| 	                     |¦   «         ¦  «        ¦  «         |  
                     |¦   «         ¦  «         |                      t
          j        t
          j        ¦  «         d S )Nr   zO IS NOT NONE.)ÚweakrefÚrefÚgreenletÚ
getcurrentÚswitchÚgcÚcollectÚsysÚprintÚgetrefcountÚassertIsNoneÚassertFalseÚgarbage)ÚselfÚor   s      ú`/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/greenlet/tests/test_gc.pyÚtest_dead_circular_refzTestGC.test_dead_circular_ref   s§   € ÝŒK�Ô)­(Ô*=Ñ>Ô>×EÒEÑGÔGÑHÔHˆÝ
Œ
‰ŒˆØˆ1‰3Œ3ˆ?ØˆJˆJˆJÝÐ" C§O¢O°A°A±C´CÑ$8Ô$8Ñ9Ô9Ð9Ø×Ò˜!˜!™#œ#ÑÔÐØ×Ò�œ¥R¤ZÑ0Ô0Ð0Ð0Ð0ó    c                 ó4  —  G d„ dt           j         ¦  «        } |¦   «         }||_        t          j        |¦  «        }t	          j        ¦   «          |                       |¦   «         ¦  «         |                      t          j        t          j        ¦  «         d S )Nc                   ó   — e Zd ZdZdS )ú8TestGC.test_circular_greenlet.<locals>.circular_greenletN)Ú__name__Ú
__module__Ú__qualname__r   © r   r   Úcircular_greenletr      s   € € € € € ØˆDˆDˆDr   r"   )	r   r   r	   r
   r   r   r   r   r   )r   r"   r   s      r   Útest_circular_greenletzTestGC.test_circular_greenlet   s–   € ð	ð 	ð 	ð 	ð 	¥Ô 1ñ 	ô 	ð 	àÐÑÔˆØˆŒÝŒK˜‰NŒNˆÝ
Œ
‰ŒˆØ×Ò˜!˜!™#œ#ÑÔÐØ×Ò�œ¥R¤ZÑ0Ô0Ð0Ð0Ð0r   c                 ó&  —  G d„ dt           j         ¦  «        } |¦   «         }t          j        |¦  «        }t          j        ¦   «          |                       |¦   «         ¦  «         |                      t          j        t          j        ¦  «         d S )Nc                   ó   — e Zd Zd„ Zd„ ZdS )ú3TestGC.test_inactive_ref.<locals>.inactive_greenletc                 óR   — t           j                              | | j        ¬¦  «         d S )N)Úrun)r   Ú__init__r(   ©r   s    r   r)   z<TestGC.test_inactive_ref.<locals>.inactive_greenlet.__init__$   s&   € ÝÔ!×*Ò*¨4°T´XÐ*Ñ>Ô>Ð>Ð>Ð>r   c                 ó   — d S ©Nr!   r*   s    r   r(   z7TestGC.test_inactive_ref.<locals>.inactive_greenlet.run'   ó   € Ø�r   N)r   r   r    r)   r(   r!   r   r   Úinactive_greenletr&   #   s2   € € € € € ð?ð ?ð ?ðð ð ð ð r   r.   )r   r	   r
   r   r   r   r   r   )r   r.   r   s      r   Útest_inactive_refzTestGC.test_inactive_ref"   s‘   € ð	ð 	ð 	ð 	ð 	¥Ô 1ñ 	ô 	ð 	ð ÐÑÔˆÝŒK˜‰NŒNˆÝ
Œ
‰ŒˆØ×Ò˜!˜!™#œ#ÑÔÐØ×Ò�œ¥R¤ZÑ0Ô0Ð0Ð0Ð0r   c                 ó>  ‡‡—  G d„ dt           ¦  «        Šg }t          j        ¦   «         Šˆˆfd„}t          j        |¦  «        }||_        |                     |¦  «         |                     ¦   «          ~~t          j        ¦   «          t          j        ¦   «          d S )Nc                   ó   — e Zd Zd„ ZdS )ú:TestGC.test_finalizer_crash.<locals>.object_with_finalizerc                 ó   — d S r,   r!   r*   s    r   Ú__del__zBTestGC.test_finalizer_crash.<locals>.object_with_finalizer.__del__C   r-   r   N)r   r   r    r4   r!   r   r   Úobject_with_finalizerr2   B   s#   € € € € € ðð ð ð ð r   r5   c                  ó  •—  ‰ ¦   «         t          j        ¦   «         _        	 ‰                     ¦   «          n$# t           j        $ r t          d¦  «         Y nw xY wt          j        ¦   «         `d S # t          j        ¦   «         `w xY w)NzGot greenlet exit!)r   r   Úobjectr   ÚGreenletExitr   )r5   Úparents   €€r   Úgreenlet_bodyz2TestGC.test_finalizer_crash.<locals>.greenlet_bodyG   s–   ø€ Ø+@Ð+@Ñ+BÔ+B�HÔÑ!Ô!Ô(ð1Ø—’‘”��øÝÔ(ð ,ð ,ð ,ÝÐ*Ñ+Ô+Ð+Ð+Ð+ð,øøøõ Ô'Ñ)Ô)Ð0Ð0Ð0ø•HÔ'Ñ)Ô)Ð0Ð0Ð0Ð0Ð0s&   £8 ·A1 ¸AÁA1 ÁAÁA1 Á1B)r7   r   r   ÚarrayÚappendr   r   r   )r   r;   r:   Úgr5   r9   s       @@r   Útest_finalizer_crashzTestGC.test_finalizer_crash/   sº   øø€ ð&	ð 	ð 	ð 	ð 	¥Fñ 	ô 	ð 	ð ˆÝÔ$Ñ&Ô&ˆð	1ð 	1ð 	1ð 	1ð 	1ð 	1õ Ô˜mÑ,Ô,ˆØˆŒØ�Š�Q‰ŒˆØ	�Š‰
Œ
ˆ
ØØÝÔÑÔÐÝ
Œ
‰Œˆˆˆr   N)r   r   r    r   r#   r/   r   r>   r!   r   r   r   r      s\   € € € € € ð1ð 1ð 1ð1ð 1ð 1ð1ð 1ð 1ð ð&ð &ñ „_ð&ð &ð &r   r   )	r   r	   r   Ú r   Ú	leakcheckr   ÚGREENLET_USE_GCr   r!   r   r   ú<module>rB      s•   ðØ 	€	€	€	à €€€à €€€ð Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &ð ÔÐ Ð ÐðHð Hð Hð Hð HˆXñ Hô Hð Hð Hð Hr   