Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_threadsignals.cpython-312.pyc

�

'Μg|'����dZddlZddlZddlZddlZddlmZddlZddl	Z	ejdddk(rejdejz��ej�Z
ej�Zej j"dk(xrej j$dk(Zd	�Zd
�Zd�Zej.�Gd�d
ej0��Zd�Zedk(rej8�yy)z6PyUnit testing that threads honor our signal semantics�N)�threading_helper��winzCan't test signal on %s�pthreadz
mutex+condc���tjtj|�}tjtj|�}tjtj|�}|||fS�N)�signal�SIGUSR1�SIGUSR2�SIGALRM)�for_usr1�for_usr2�for_alrm�usr1�usr2�alrms      �4/usr/local/lib/python3.12/test/test_threadsignals.py�registerSignalsrsK���=�=�����2�D��=�=�����2�D��=�=�����2�D���t���c�h�t|dxxdz
cc<tj�t|d<y�N�tripped��
tripped_by)�signal_blackboard�thread�	get_ident)�sig�frames  r�handle_signalsr s0���c��9�%��*�%�+1�+;�+;�+=��c��<�(rc��tjtj�tjtj�tj�yr)r	�raise_signalr
r�
signalled_all�release�rr�send_signalsr&"s4��
������'�
������'����rc�v�eZdZd�Zd�Zd�Zejed�eje	jjd�xre	jjd�eje	jjd�d�d	����Zejed�eje	jjd�xre	jjd�eje	jjd�d�d
����Zd�Zd�Zd
�Zd�Zy)�
ThreadSignalsc��tj�5tj�|j	�tj�ddd�|jttjdd�|jttjdtj��|jttjdd�|jttjdtj��tj�y#1swY��xYwr)
r�wait_threads_exitr#�acquire�spawnSignallingThread�assertEqualrr	r
rrrr$��selfs r�test_signalszThreadSignals.test_signals/s���
�
/�
/�
1�

�!�!�#��&�&�(��!�!�#�2�	
���+�F�N�N�;�I�F��J����+�F�N�N�;�L�I�!�+�+�-�	/����+�F�N�N�;�I�F��J����+�F�N�N�;�L�I�!�+�+�-�	/�����2�
1�s�9D7�7Ec�8�tjtd�y)Nr%)r�start_new_threadr&r.s rr,z#ThreadSignals.spawnSignallingThreadAs������b�1rc��t�r)�KeyboardInterrupt)r/rrs   r�alarm_interruptzThreadSignals.alarm_interruptDs���rz/POSIX condition variables cannot be interrupted�linuxzBIssue 34004: musl does not allow interruption of locks by signals.�openbsdz%lock cannot be interrupted on OpenBSDc��tjtj|j�}	tj�}|j�tjd�tj�}|jt|j
d��tj�|z
}|j|d�tjd�tjtj|�y#tjd�tjtj|�wxYw)Nr���timeout�@r)r	rr5r�
allocate_lockr+�alarm�time�	monotonic�assertRaisesr4�
assertLess)r/�oldalrm�lock�t1�dts     r�test_lock_acquire_interruptionz,ThreadSignals.test_lock_acquire_interruptionGs����-�-�����0D�0D�E��	3��'�'�)�D��L�L�N��L�L��O����!�B����/����q��I����!�B�&�B�

�O�O�B��$��L�L��O��M�M�&�.�.�'�2��
�L�L��O��M�M�&�.�.�'�2�s�BD�;D=c�~��tjtj|j�}	tj���fd�}tj�5tj|d��jd��r8�j�tjd��jd��r�8tjd�tj�}|jt�jd��tj�|z
}|j!|d	�ddd�tjd
�tjtj|�y#1swY�CxYw#tjd
�tjtj|�wxYw)Nc�&���j�yr)r+)�rlocks�r�other_threadzCThreadSignals.test_rlock_acquire_interruption.<locals>.other_threadys����
�
�rr%F��blocking�{�G�z�?rr9r:r<r)r	rr5r�RLockrr*r2r+r$r?�sleepr>r@rAr4rB)r/rCrKrErFrJs     @r�test_rlock_acquire_interruptionz-ThreadSignals.test_rlock_acquire_interruptionfs$����-�-�����0D�0D�E��	3��L�L�N�E�
 �"�3�3�5��'�'��b�9��m�m�U�m�3��M�M�O��J�J�t�$��m�m�U�m�3����Q���^�^�%���!�!�"3�U�]�]�A�!�N��^�^�%��*������C�(�6�
�L�L��O��M�M�&�.�.�'�2�6�5��
�L�L��O��M�M�&�.�.�'�2�s+�-F�A E5�?A4E5�3F�5E>�:F�;F<c����d�_�fd�}tjtj|�}	�fd�}tj�5tj|d��jd��r8�j�tjd��jd��r�8�j�}�j�j��j|�ddd�tjtj|�y#1swY�.xYw#tjtj|�wxYw)NFc���d�_y)NT)�	sig_recvd)r	rr/s  �r�
my_handlerz9ThreadSignals.acquire_retries_on_intr.<locals>.my_handler�s
���!�D�Nrc�����j�tjd�tjt
tj�tjd��j�y)N��?)	r+r?rP�os�kill�process_pidr	r
r$)rDs�rrKz;ThreadSignals.acquire_retries_on_intr.<locals>.other_thread�sC��������
�
�3������V�^�^�4��
�
�3�����rr%rLrN)rTr	r
rr*rr2r+r$r?rP�
assertTrue)r/rDrU�old_handlerrK�results``    r�acquire_retries_on_intrz%ThreadSignals.acquire_retries_on_intr�s�������	"��m�m�F�N�N�J�?��	7�
�"�3�3�5��'�'��b�9��l�l�E�l�2��L�L�N��J�J�t�$��l�l�E�l�2������������/�����'�6�
�M�M�&�.�.�+�6�6�5��
�M�M�&�.�.�+�6�s*�D#�
A D�.<D�*D#�D �D#�#&E	c�J�|jtj��yr)r^rr=r.s r�!test_lock_acquire_retries_on_intrz/ThreadSignals.test_lock_acquire_retries_on_intr�s���$�$�V�%9�%9�%;�<rc�J�|jtj��yr)r^rrOr.s r�"test_rlock_acquire_retries_on_intrz0ThreadSignals.test_rlock_acquire_retries_on_intr�s���$�$�V�\�\�^�4rc�P����d�_d�_d�_tj���j�tj���j��fd�}t
jtj|�}	��fd�}�fd�}tj�5tj|d�|��j��j�j�jz
d��j�j�jz
d��j�jd�ddd�t
jtj|�y#1swY�.xYw#t
jtj|�wxYw)Nrc�0���xjdz
c_y)Nr)�
sigs_recvd)�signumrr/s  �rrUz@ThreadSignals.test_interrupted_timed_acquire.<locals>.my_handler�s����O�O�q� �Orc���tj��_�jd��tj��_y)NrWr:)r?r@�startr+�end)rDr/s��r�
timed_acquirezCThreadSignals.test_interrupted_timed_acquire.<locals>.timed_acquire�s-���!�^�^�-��
����S��)��>�>�+��rc���td�D]?}tjd�tjt
tj��A�j�y)N�(g{�G�z�?)	�ranger?rPrXrYrZr	r
r$)�_�dones �rr&zBThreadSignals.test_interrupted_timed_acquire.<locals>.send_signals�s:����r��A��J�J�t�$��G�G�K����8�#����rr%g@g333333�?)
rhrirerr=r+r	r
rr*r2rB�
assertGreater)r/rUr\rjr&rorDs`    @@r�test_interrupted_timed_acquirez,ThreadSignals.test_interrupted_timed_acquire�s#�����
��������#�#�%�������#�#�%������	!��m�m�F�N�N�J�?��	7�
,�
�"�3�3�5��'�'��b�9�������������4�:�:� 5�s�;��"�"�4�8�8�d�j�j�#8�#�>��"�"�4�?�?�A�6�6�
�M�M�&�.�.�+�6�6�5��
�M�M�&�.�.�+�6�s%�E?�*BE3�E?�3E<�8E?�?&F%N)�__name__�
__module__�__qualname__r0r,r5�unittest�skipIf�USING_PTHREAD_COND�sys�platform�
startswith�thread_info�versionrGrQr^r`rbrqr%rrr(r(,sB�� �$2� ��X�_�_�'�F�H��X�_�_�S�\�\�,�,�W�5�1����0�0�0�#�$�
�X�_�_�S�\�\�,�,�Y�7�<�>�3�>�$�H�3�,�X�_�_�'�F�H��X�_�_�S�\�\�,�,�W�5�1����0�0�0�#�$�
�X�_�_�S�\�\�,�,�Y�7�<�>�3�>�$�H�3�:7�@=�5�,7rr(c���tjddd�tjddd�tjddd�iatttt�}tjt
g|���y)Nr)rr)	r	r
rrrrr ru�addModuleCleanup)�oldsigss r�setUpModuler��sZ��!�.�.�q��+K� �.�.�q��+K� �.�.�q��+K�N���n�n�n�M�G����o�8��8r�__main__)�__doc__rur	rXrx�test.supportr�_threadrr?ry�SkipTest�getpidrZr=r#r{�namerDrwrr r&�requires_working_threading�TestCaser(r�rr�mainr%rr�<module>r�s���<��
�	�
�)����L�L��!����
�(�
�
�5����D�
E�E��b�i�i�k��"�f�"�"�$�
��o�o�*�*�i�7�?��/�/�.�.�,�>���>�
�-��,�,�.�q7�H�%�%�q7�/�q7�h9��z���H�M�M�O�r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists