§
    öÛgÃ  ã                   óŽ   — d dl Z d dlZd dlZddlmZ ddlmZ dZ G d„ de j        ¦  «        Z	e
dk    r e j        ¦   «          dS dS )	é    Né   )Úpg_tmp)Úalockz9select count(*) FROM pg_locks WHERE locktype = 'advisory'c                   ó’   — e Zd Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	dS )Ú
test_alockc                 ó  ‡‡— t          t          ¦  «        j        }|                       |¦   «         d¦  «         g d¢Št	          ¦   «         Št          j        t          d¦  «        }t          j        t          d¦  «        }ˆˆfd„}t          j	        |¬¦  «        }| 
                    ¦   «          ‰d         st          j        d¦  «         ‰d         ¯|                       |¦   «         d¦  «         d	‰d<   |5  |                       |¦   «         d¦  «         d	‰d<   |5  |                       |¦   «         d¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                     d¬
¦  «         d S )Nr   )FFF©r   r   é   c                  óœ  •— 	 t          j        ‰ d¦  «        5  t          j        ‰ d¦  «        5  d‰d<   ‰d         s	 t          j        d¦  «         ‰d         ¯d d d ¦  «         n# 1 swxY w Y   ‰d         st          j        d¦  «         ‰d         ¯d d d ¦  «         d S # 1 swxY w Y   d S # t          $ r dx‰d<   x‰d<   ‰d<   Y d S w xY w)Nr
   r	   Tr   ç{®Gáz„?r   )r   ÚExclusiveLockÚtimeÚsleepÚ	Exception)ÚaltÚstates   €€úP/granary/edev/quantum/lib/python3.11/site-packages/postgresql/test/test_alock.pyÚconcurrent_lockz1test_alock.testALockWait.<locals>.concurrent_lock   s‡  ø€ ð*Ý	Ô	˜S !Ñ	$Ô	$ð ð Ý
Ô
˜c 5Ñ
)Ô
)ð ð à€eˆA�hØ�a”ð ØÝ„z�$ÑÔÐð �a”ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �QŒxð Ý
„j�ÑÔÐð �QŒxð ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð øõ ð *ð *ð *à%)Ð)€Eˆ!�HÐ)ˆu�Q‰x˜% ™(˜(˜(˜(ð*øøøsW   ƒB. ˜B!®+A%ÁB!Á%A)	Á)B!Á,A)	Á-'B!ÂB. Â!B%Â%B. Â(B%Â)B. Â.CÃ
C)Útargetr   r   T)Útimeout)ÚprepareÚn_alocksÚfirstÚassertEqualÚnewr   r   ÚdbÚ	threadingÚThreadÚstartr   r   Újoin)ÚselfÚadr   Úsecondr   Útr   r   s         @@r   ÚtestALockWaitztest_alock.testALockWait   s  øø€ õ �xÑÔÔ€"Ø×Ò�2�2‘4”4˜ÑÔÐØ
Ð
Ð
€%Ý‰Œ€#Ý
Ô
�b %Ñ
(Ô
(€%ÝÔ�r 1Ñ%Ô%€&ð*ð *ð *ð *ð *ð *õ Ô Ð0Ñ0Ô0€!Ø‡'‚'�)„)€)Ø�!ŒHð Ý„:ˆdÑÔÐð �!ŒHð à×Ò�2�2‘4”4˜ÑÔÐØ€%ˆ�(Øð ð Ø×Ò�B�B‘D”D˜!ÑÔÐØ€5ˆ�8Øð ð Ø×Ò�R�R‘T”T˜1ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð
 ‡&‚&�1€&ÑÔÐÐÐs6   Ã8&E ÄE	Ä=E Å	E	ÅE ÅE	ÅE Å E$Å'E$c                 ó®  — t          ¦   «         }t          t          ¦  «        j        }|                       |¦   «         d¦  «         t          j        t          d¦  «        5  t          j        |d¦  «        }|                      |                     d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   |                       |¦   «         d¦  «         d S )Nr   r	   F©Úblocking)	r   r   r   r   r   r   r   r   Úacquire)r!   r   r"   Úls       r   ÚtestALockNoWaitztest_alock.testALockNoWait1   sù   € å‰Œ€#Ý�xÑÔÔ€"Ø×Ò�2�2‘4”4˜ÑÔÐÝÔ�2˜uÑ%Ô%ð 6ð 6Ý
Ô˜˜eÑ$Ô$€1à×Ò�A—I’I u�IÑ-Ô-¨uÑ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð
 ×Ò�2�2‘4”4˜ÑÔÐÐÐs   Á A B,Â,B0Â3B0c           	      ól  — t          t          ¦  «        j        }|                       |¦   «         d¦  «         g d¢}t	          ¦   «         }t          j        t          g|¢R Ž }t          j        t          g|¢R Ž }t          j        t          g|¢R Ž }|5  |5  |5  |  	                     |¦   «         dk    ¦  «         |D ]A}t          j        ||¦  «        }|                      | 
                    d¬¦  «        d¦  «         ŒBt          j        |g|¢R Ž }|                      | 
                    d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |D ]”}t          j        ||¦  «        }|                      | 
                    d¬¦  «        d¦  «         t          j        ||¦  «        }|                      | 
                    d¬¦  «        d¦  «         |                     ¦   «          Œ•	 d d d ¦  «         n# 1 swxY w Y   |                       |¦   «         d¦  «         d S )Nr   )©r
   é   iì€ÿÿr   r   )é   i0ûÿÿr.   é   iW6Ö)é   r/   r   r-   Fr'   T)r   r   r   r   r   r   r   r   Ú	ShareLockÚ
assertTruer)   Úrelease)	r!   r"   Úlockidsr   Úxal1Úxal2Úsal1ÚxÚxls	            r   Ú	testALockztest_alock.testALock=   sô  € å�xÑÔÔ€"Ø×Ò�2�2‘4”4˜ÑÔÐðð ð €'õ 	‰Œ€#Ý	Ô	�RÐ	* 'Ð	*Ð	*Ð	*€$Ý	Ô	�RÐ	* 'Ð	*Ð	*Ð	*€$Ý	Œ�Ð	&˜gÐ	&Ð	&Ð	&€$Øð ð Øð 8ð 8ˆdð 8ð 8Ø‡O‚O�B�B‘D”D˜1’HÑÔÐØð 9ð 9ˆÝ
Ô
˜c 1Ñ
%Ô
%€RØ	×Ò�b—j’j¨%�jÑ0Ô0°%Ñ8Ô8Ð8Ð8å	Œ˜Ð	'˜wÐ	'Ð	'Ð	'€BØ×Ò�R—Z’Z¨�ZÑ/Ô/°Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð 8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð ð ð €qå	Ô	˜S !Ñ	$Ô	$€BØ×Ò�R—Z’Z¨�ZÑ/Ô/°Ñ7Ô7Ð7å	Œ˜˜aÑ	 Ô	 €BØ×Ò�R—Z’Z¨�ZÑ/Ô/°Ñ6Ô6Ð6Ø‡J‚J�L„L€L€Lððð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð$ ×Ò�2�2‘4”4˜ÑÔÐÐÐs\   ÂHÂEÂB"EÄ9EÅE	Å	EÅE	ÅEÅHÅE 	Å HÅ#E 	Å$BHÈHÈHc                 óÀ  — t          t          ¦  «        j        }|                       |¦   «         d¦  «         d}dddd|dddg}t	          ¦   «         }t          j        t          |¦  «        5  t          j        |g|¢R Ž }|                      |                     d	¬
¦  «        d	¦  «         d d d ¦  «         n# 1 swxY w Y   |                       |¦   «         d¦  «         d S )Nr   ©r   i.ûÿÿiD  iÌ/íÿr/   r
   )r   r.   )iB  r
   Fr'   )	r   r   r   r   r   r   r   r   r)   )r!   r"   ÚheldÚwantedr   r*   s         r   ÚtestPartialALockztest_alock.testPartialALockb   s  € õ �xÑÔÔ€"Ø×Ò�2�2‘4”4˜ÑÔÐØ	€$Øˆs�H˜a  q¨%°Ð9€&Ý‰Œ€#ÝÔ�2˜tÑ$Ô$ð 6ð 6Ý
Ô˜Ð&˜vÐ&Ð&Ð&€1à×Ò�A—I’I u�IÑ-Ô-¨uÑ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð ×Ò�2�2‘4”4˜ÑÔÐÐÐs   Á,=B5Â5B9Â<B9c                 óÂ   — |                       t          t          j        ¦  «         t          j        t
          ¦  «        }|                       t          |j        ¦  «         d S )N)ÚassertRaisesÚ	TypeErrorr   ÚALockr   r   ÚRuntimeErrorr4   )r!   r*   s     r   ÚtestALockParameterErrorsz#test_alock.testALockParameterErrorst   sH   € à×Ò•I�uœ{Ñ+Ô+Ð+ÝÔ�"ÑÔ€!Ø×Ò•L !¤)Ñ,Ô,Ð,Ð,Ð,ó    c                 óX  — t          t          ¦  «        j        }|                       |¦   «         d¦  «         d}t	          ¦   «         }t          j        ||¦  «        5 }|                       |¦   «         d¦  «         |                      |                     ¦   «         d¦  «         |                     ¦   «          t          j
        d¦  «         |                       |¦   «         d¦  «         |                      |                     ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r=   r
   Tg{®Gázt?F)r   r   r   r   r   r   r   ÚlockedÚcloser   r   )r!   r"   r>   r   r*   s        r   ÚtestALockOnClosedztest_alock.testALockOnClosedz   sA  € å�xÑÔÔ€"Ø×Ò�2�2‘4”4˜ÑÔÐØ	€$Ý‰Œ€#åÔ˜3 Ñ%Ô%ð '¨Ø×Ò�B�B‘D”D˜!ÑÔÐØ×Ò�A—H’H‘J”J Ñ%Ô%Ð%Ø‡9‚9�;„;€;Ý„:ˆeÑÔÐØ×Ò�B�B‘D”D˜!ÑÔÐØ×Ò�A—H’H‘J”J Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's   ÁB5DÄD#Ä&D#N)
Ú__name__Ú
__module__Ú__qualname__r   r%   r+   r;   r@   rF   rK   © rG   r   r   r      s¶   € € € € € Øð!ð !ñ 	„&ð!ðF 	ð	ð 	ñ 	„&ð	ð 	ð"ð "ñ 	„&ð"ðH 	ðð ñ 	„&ðð" 	ð-ð -ñ 	„&ð-ð
 	ð'ð 'ñ 	„&ð'ð 'ð 'rG   r   Ú__main__)Úunittestr   r   Útemporalr   Ú r   r   ÚTestCaser   rL   ÚmainrO   rG   r   ú<module>rV      sª   ðð €€€Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð àF€ð{'ð {'ð {'ð {'ð {'�Ô"ñ {'ô {'ð {'ðz ˆzÒÐØ€„�„€€€ð ÐrG   