§
    .çi   ã                   ó8   — d dl mZ d dlmZ  G d„ d¦  «        ZdS )é    )ÚLock)ÚCallablec                   ó:   — e Zd ZdZdd„Zdeg df         defd„ZdS )Ú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                 ó:   — t          ¦   «         | _        d| _        d S )NF)r   Ú_lockÚ_done)Úselfs    ú]/home/mmwave/public_html/mmwave/venv/lib/python3.11/site-packages/opentelemetry/util/_once.pyÚ__init__zOnce.__init__   s   € Ý‘V”VˆŒ
ØˆŒ
ˆ
ˆ
ó    Úfuncc                 ó¤   — | j         rdS | j        5  | j         s |¦   «          d| _         	 ddd¦  «         dS 	 ddd¦  «         n# 1 swxY w Y   dS )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   sÃ   € ð Œ:ð 	Ø�5àŒZð 	ð 	Ø”:ð Ø�‘”�Ø!�”
Øð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ðð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð
 ˆus   ‘AÁ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   