o
    U˟i                     @   s`   d dl mZ d dlmZ d dlmZ G dd dejZG dd dej	Z
edkr.e  dS dS )	    )lockN)test__semaphorec                   @   s   e Zd Zdd Zdd ZdS )TestRLockMultiThreadc                 C   s   t  S N)r   RLock)self r   _/var/www/apps/myagent/mysuperagent/venv/lib/python3.10/site-packages/gevent/tests/test__lock.py_makeOne
   s   zTestRLockMultiThread._makeOnec                 C   s   |  |jj d S r   )assertIsNone_blockhub)r   semr   r   r	   assertOneHasNoHub   s   z&TestRLockMultiThread.assertOneHasNoHubN)__name__
__module____qualname__r
   r   r   r   r   r	   r      s    r   c                   @   s   e Zd Zdd ZdS )TestLockReinitAfterForkc                 C   sj   dd l }dd l}dd l}dd l}t|ds| d |d}|j|jd|g|j	d
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outputr   r   r	   test_it   s   



zTestLockReinitAfterFork.test_itN)r   r   r   r$   r   r   r   r	   r      s    r   __main__)geventr   gevent.testingtesting	greentestgevent.testsr   TestSemaphoreMultiThreadr   TestCaser   r   mainr   r   r   r	   <module>   s    2