§
    dŠtjÉ  ã                   óØ   — d Z ddlZddlZddlZddlZ ej        dd¬¦  «         d„ Z ej         e¦   «         ¦  «          ej        ¦   «           e	d¦  «          ej
        d¦  «         dS )a¶  Out-of-process payload for the free-threaded switch/critical-section deadlock.

See ``freethread_switch_deadlock.py`` in the repo root for the full write-up.
Before the fix, a greenlet switch swapped C stacks but left any held
``PyCriticalSection`` locks (tracked in ``tstate->critical_section``) locked.
asyncio's ``Task.__step`` holds such a lock on the running task across the step,
so switching into a child greenlet and touching that task from there blocked
forever. A fixed build (and any GIL-enabled build) prints the sentinel; a
regressed free-threaded build deadlocks, and the watchdog turns that hang into a
non-zero exit so the test fails loudly instead of stalling the whole suite.
é    Né   T)Úexitc               ƒ   óˆ   ‡K  — t          j        ¦   «         Šˆfd„} t          j        | ¦  «                             ¦   «          d S )Nc                  ó`   •— ‰                       d„ ¦  «         ‰                      d„ ¦  «         d S )Nc                 ó   — d S ©N© ©Ú_s    úi/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/greenlet/tests/fail_switch_critical_section.pyú<lambda>z.main.<locals>.in_child_fiber.<locals>.<lambda>   s   € ¨€ ó    c                 ó   — d S r   r	   r
   s    r   r   z.main.<locals>.in_child_fiber.<locals>.<lambda>   s   € ¨D€ r   )Úadd_done_callbackÚremove_done_callback)Útasks   €r   Úin_child_fiberzmain.<locals>.in_child_fiber   s7   ø€ ð 	×Ò˜~˜~Ñ.Ô.Ð.Ø×!Ò! . .Ñ1Ô1Ð1Ð1Ð1r   )ÚasyncioÚcurrent_taskÚgreenletÚswitch)r   r   s    @r   Úmainr      sS   øè è € ÝÔÑ!Ô!€Dð2ð 2ð 2ð 2ð 2õ Ô�nÑ%Ô%×,Ò,Ñ.Ô.Ð.Ð.Ð.r   zSWITCH CS OK)Ú__doc__r   ÚfaulthandlerÚsysr   Údump_traceback_laterr   ÚrunÚcancel_dump_traceback_laterÚprintr   r	   r   r   ú<module>r       s¯   ðð
ð 
ð €€€Ø Ð Ð Ð Ø 
€
€
€
à €€€ð "€Ô ! "¨4Ð 0Ñ 0Ô 0Ð 0ð	/ð 	/ð 	/ð €„ˆDˆD‰FŒFÑ Ô Ð Ø (€Ô (Ñ *Ô *Ð *Ø €€nÑ Ô Ð Ø €„ˆ�„€€€r   