Ë
    v¹1hk  ã                   óf   — 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y)é    Né   )ÚTestCase)Úfails_leakcheckc                   ó.   — e Zd Zd„ Zd„ Zd„ Zed„ «       Zy)ÚGCTestsc                 ó’  — t        j                  t        j                  t        j                  «      j	                  «       «      }t        j                  «         |«       �$dd l}t        d|j                   |«       «      «       | j                   |«       «       | j                  t
        j                  t
        j                  «       y )Nr   zO IS NOT NONE.)ÚweakrefÚrefÚgreenletÚ
getcurrentÚswitchÚgcÚcollectÚsysÚprintÚgetrefcountÚassertIsNoneÚassertFalseÚgarbage)ÚselfÚor   s      úT/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/greenlet/tests/test_gc.pyÚtest_dead_circular_refzGCTests.test_dead_circular_ref   s{   € Ü�K‰Kœ×)Ñ)¬(×*=Ñ*=Ó>×EÑEÓGÓHˆÜ
�
‰
ŒÙ‹3ˆ?ÛÜÐ" C§O¡O±A³CÓ$8Ô9Ø×Ñ™!›#ÔØ×ÑœŸ™¤R§Z¡ZÕ0ó    c                 ó,  —  G d„ dt         j                   «      } |«       }||_        t        j                  |«      }t	        j
                  «        | j                   |«       «       | j                  t        j                  t        j                  «       y )Nc                   ó   — e Zd ZdZy)ú9GCTests.test_circular_greenlet.<locals>.circular_greenletN)Ú__name__Ú
__module__Ú__qualname__r   © r   r   Úcircular_greenletr      s   „ Ø‰Dr   r"   )	r   r   r	   r
   r   r   r   r   r   )r   r"   r   s      r   Útest_circular_greenletzGCTests.test_circular_greenlet   sa   € ô	¤× 1Ñ 1ô 	áÓˆØˆŒÜ�K‰K˜‹NˆÜ
�
‰
ŒØ×Ñ™!›#ÔØ×ÑœŸ™¤R§Z¡ZÕ0r   c                 ó  —  G d„ dt         j                   «      } |«       }t        j                  |«      }t        j                  «        | j                   |«       «       | j                  t        j                  t        j                  «       y )Nc                   ó   — e Zd Zd„ Zd„ Zy)ú4GCTests.test_inactive_ref.<locals>.inactive_greenletc                 óZ   — t         j                   j                  | | j                  ¬«       y )N)Úrun)r   Ú__init__r(   ©r   s    r   r)   z=GCTests.test_inactive_ref.<locals>.inactive_greenlet.__init__$   s   € Ü×!Ñ!×*Ñ*¨4°T·X±XÐ*Õ>r   c                  ó   — y ©Nr!   r*   s    r   r(   z8GCTests.test_inactive_ref.<locals>.inactive_greenlet.run'   ó   € Ør   N)r   r   r    r)   r(   r!   r   r   Úinactive_greenletr&   #   s   „ ò?ór   r.   )r   r	   r
   r   r   r   r   r   )r   r.   r   s      r   Útest_inactive_refzGCTests.test_inactive_ref"   s\   € ô	¤× 1Ñ 1ô 	ñ ÓˆÜ�K‰K˜‹NˆÜ
�
‰
ŒØ×Ñ™!›#ÔØ×ÑœŸ™¤R§Z¡ZÕ0r   c                 ó,  ‡‡—  G d„ dt         «      Šg }t        j                  «       Šˆˆfd„}t        j                  |«      }||_        |j	                  |«       |j                  «        ~~t        j                  «        t        j                  «        y )Nc                   ó   — e Zd Zd„ Zy)ú;GCTests.test_finalizer_crash.<locals>.object_with_finalizerc                  ó   — y r,   r!   r*   s    r   Ú__del__zCGCTests.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                  «       _        	 ‰j                  «        t        j                  «       `y # t         j                  $ r t        d«       Y Œ5w xY w# t        j                  «       `w xY w)NzGot greenlet exit!)r   r   Úobjectr   ÚGreenletExitr   )r5   Úparents   €€r   Úgreenlet_bodyz3GCTests.test_finalizer_crash.<locals>.greenlet_bodyG   sh   ø€ Ù+@Ó+BŒH×ÑÓ!Ô(ð1Ø—‘”ô ×'Ñ'Ó)Ñ0øô ×(Ñ(ò ,ÜÐ*Ö+ð,ûô ×'Ñ'Ó)Ñ0ús#   ¡A ÁA'Á$A* Á&A'Á'A* Á*B )r7   r   r   ÚarrayÚappendr   r   r   )r   r;   r:   Úgr5   r9   s       @@r   Útest_finalizer_crashzGCTests.test_finalizer_crash/   sq   ù€ ô&	¤Fô 	ð ˆÜ×$Ñ$Ó&ˆõ	1ô ×Ñ˜mÓ,ˆØˆŒØ�‰�QŒØ	�‰Œ
ØØÜ×ÑÔÜ
�
‰
�r   N)r   r   r    r   r#   r/   r   r>   r!   r   r   r   r      s%   „ ò1ò1ò1ð ñ&ó ñ&r   r   )	r   r	   r   Ú r   Ú	leakcheckr   ÚGREENLET_USE_GCr   r!   r   r   ú<module>rB      s5   ðÛ 	ã ã õ Ý &ð ×ÒÐ ÐôHˆhõ Hr   