§
    ZŠtj­  ã                   ó8   — d dl mZ d dlmZ  G d„ d¦  «        ZdS )é    )ÚCallable)ÚLockc                   ó:   — 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    úV/var/www/html/CA-Chatbot/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)Úcollections.abcr   Ú	threadingr   r   r   r   r   ú<module>r      s]   ðð %Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð ðð ð ð ð ñ ô ð ð ð r   