Ë
    ÿÿæi   ã                   ó0   — d dl mZ d dlmZ  G d„ d«      Zy)é    )ÚLock)ÚCallablec                   ó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/Volumes/fast/ai/experiments/voice-extract-mac/.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   sJ   € ð �:Š:Øà�Z‹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)Ú	threadingr   Útypingr   r   r   r   r   Ú<module>r      s   ðõ Ý ÷ò r   