Ë
    ÒÍ:j­  ã                   ó0   — d dl mZ d dlmZ  G d„ d«      Zy)é    )ÚCallable)ÚLockc                   ó2   — e Zd ZdZdd„Zdeg df   defd„Zy)ÚOncez—Execute a function exactly once and block all callers until the function returns

    Same as golang's `sync.Once <https://pkg.go.dev/sync#Once>`_
    ÚreturnNc                 ó0   — t        «       | _        d| _        y )NF)r   Ú_lockÚ_done)Úselfs    úm/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/opentelemetry/util/_once.pyÚ__init__zOnce.__init__   s   € Ü“VˆŒ
Øˆ�
ó    Úfuncc                 óª   — | j                   ry| j                  5  | j                   s |«        d| _         	 ddd«       y	 ddd«       y# 1 sw Y   yxY w)zÑExecute ``func`` if it hasn't been executed or return.

        Will block until ``func`` has been called by one thread.

        Returns:
            Whether or not ``func`` was executed in this call
        FTN)r
   r	   )r   r   s     r   Údo_oncezOnce.do_once   sR   € ð �:Š:Øà�Z‰Zñ 	Ø—:’:Ù”Ø!�”
Ø÷		ð 	Ø÷	ð
 ÷	ð
 ús   šA	Á	A)r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Úboolr   © r   r   r   r      s(   „ ñó
ð˜H R¨ XÑ.ð °4ô r   r   N)Úcollections.abcr   Ú	threadingr   r   r   r   r   ú<module>r      s   ðõ %Ý ÷ò r   