File: //proc/thread-self/root/usr/local/lib/python3.7/test/__pycache__/lock_tests.cpython-37.opt-2.pyc
B
��gq � @ s d dl Z d dlZd dlmZmZ d dlZd dlZd dlZd dlm Z dd� Z
G dd� de�ZG dd � d ej
�ZG d
d� de�ZG dd
� d
e�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZdS )� N)�start_new_thread�TIMEOUT_MAX)�supportc C s t �d� d S )Ng{�G�z�?)�time�sleep� r r �+/usr/local/lib/python3.7/test/lock_tests.py�_wait s r c @ s. e Zd Zddd�Zdd� Zdd� Zdd � Zd
S )�BunchFc s| � �_ |�_g �_g �_| �_t�� �_�j�� � �fdd�}y xt |�D ]}t
|d� qNW W n d�_� Y nX d S )Nc sD t �� } �j�| � z
� � W d �j�| � x�js<t� q.W X d S )N)� threading� get_ident�started�append�finished� _can_exitr )�tid)�f�selfr r �task% s
zBunch.__init__.<locals>.taskr T)r �nr
r r r �wait_threads_exit�wait_thread� __enter__�ranger )r r r Zwait_before_exitr �ir )r r r �__init__ s
zBunch.__init__c C s xt | j�| jk rt� qW d S )N)�lenr
r r )r r r r �wait_for_started6 s zBunch.wait_for_startedc C s0 xt | j�| jk rt� qW | j�d d d � d S )N)r r r r r �__exit__)r r r r �wait_for_finished: s
zBunch.wait_for_finishedc C s
d| _ d S )NT)r )r r r r � do_finish@ s zBunch.do_finishN)F)�__name__�
__module__�__qualname__r r r r r r r r r
s
r
c @ s$ e Zd Zdd� Zdd� Zdd� ZdS )�BaseTestCasec C s t �� | _d S )N)r Zthreading_setup�_threads)r r r r �setUpE s zBaseTestCase.setUpc C s t j| j� t �� d S )N)r Zthreading_cleanupr% Z
reap_children)r r r r �tearDownH s zBaseTestCase.tearDownc C s$ | � ||d � | �||d � d S )Ng333333�?g $@)ZassertGreaterEqual�
assertLess)r �actualZexpectedr r r �
assertTimeoutL s zBaseTestCase.assertTimeoutN)r! r"