
    i                         d dl mZ d dlmZ d dlmZ  G d dej                  Z G d dej	                  Z
edk    r ej                     dS dS )	    )lockN)test__semaphorec                       e Zd Zd Zd ZdS )TestRLockMultiThreadc                 (    t          j                    S N)r   RLock)selfs    B/usr/local/lib/python3.11/dist-packages/gevent/tests/test__lock.py_makeOnezTestRLockMultiThread._makeOne
   s     z||    c                 D    |                      |j        j                   d S r   )assertIsNone_blockhub)r
   sems     r   assertOneHasNoHubz&TestRLockMultiThread.assertOneHasNoHub   s     #*.)))))r   N)__name__
__module____qualname__r   r    r   r   r   r      s2          * * * * *r   r   c                       e Zd Zd ZdS )TestLockReinitAfterForkc                 2   dd l }dd l}dd l}dd l}t	          |d          s|                     d           |                    d          }|                    |j        d|g|j	                  
                    d          }|                     |           d S )Nr   forkzRequires os.forka          from gevent import monkey
        monkey.patch_all()

        from gevent import spawn

        import os
        from logging import Handler
        from threading import Event
        handler = Handler()
        handler.acquire()

        event = Event()

        def forker():
            event.set()
            handler.acquire()
            handler.release()
            os.fork()

        g = spawn(forker)
        event.wait()
        handler.release()
        g.join()
        z-c)stderrzutf-8)sys
subprocesstextwraposhasattrskipTestdedentcheck_output
executableSTDOUTdecodeassertFalse)r
   r   r   r   r    scriptoutputs          r   test_itzTestLockReinitAfterFork.test_it   s    
 	


			r6"" 	.MM,--- !  4 ((^T6*$ ) 
 
 &// 	 	     r   N)r   r   r   r+   r   r   r   r   r      s#        .! .! .! .! .!r   r   __main__)geventr   gevent.testingtesting	greentestgevent.testsr   TestSemaphoreMultiThreadr   TestCaser   r   mainr   r   r   <module>r5      s          # " " " " " ( ( ( ( ( (* * * * *?C * * *&0! 0! 0! 0! 0!i0 0! 0! 0!d zIN r   