File: //lib/python3.10/__pycache__/threading.cpython-310.pyc
o
    E�hp�  �                   @   s6  d Z ddlZddlZddlZddlZddlmZ	 ddl
mZ ddlm
ZmZ zddlmZ W n ey=   ddlmZ Y nw g d�ZejZejZejZejZzejZdZe�d	� W n e ye   d
ZY nw ej!Z"zej#Z$W n e yy   dZ$Y nw ej%Z%[da&da'dd� Z(d
d� Z)dd� Z*dd� Z+eZ,dd� Z#G dd� d�Z-e-Z.G dd� d�Z/G dd� d�Z0G dd� de0�Z1G dd� d�Z2G dd � d �Z3G d!d"� d"e4�Z5ed#�j6Z7d$d%� Z8e#� a9i Z:i Z;e� Z<e� a=e>� a?d&d'� Z@G d(d)� d)�ZAz
dd*lmBaCmDZE W n# e�y   dd+lFmGZH dd,lmIZI eId-d.�ZDd/d-� ZEd0d1� aCY nw tCZJd2d3� ZKG d4d5� d5eA�ZLG d6d7� d7eA�ZMG d8d9� d9eA�ZNd:d;� ZOd<d=� ZPd>d?� ZQd@dA� ZRdBdC� ZSdDdE� ZTg ZUd
aVdFdG� ZWddHlmXZX eM� aYdIdJ� ZZdKdL� Z[zddMlm\Z] W n e�y�   ddNl^m]Z] Y nw dOdP� Z_e`edQ��r�ejae_dR� dS dS )Sz;Thread module emulating a subset of Java's threading model.�    N)�	monotonic)�WeakSet)�islice�count)�deque)�	get_ident�active_count�	Condition�current_thread�	enumerate�main_thread�TIMEOUT_MAX�Event�Lock�RLock�	Semaphore�BoundedSemaphore�Thread�Barrier�BrokenBarrierError�Timer�ThreadError�
setprofile�settrace�local�
stack_size�
excepthook�ExceptHookArgs�gettrace�
getprofileT�
get_native_idFc                 C   �   | a dS )z�Set a profile function for all threads started from the threading module.
    The func will be passed to sys.setprofile() for each thread, before its
    run() method is called.
    N��
_profile_hook��func� r&