
    Ki                     0    S SK Jr  S SKJr   " S S5      rg)    )Lock)Callablec                   >    \ rS rSrSrS	S jrS\/ S4   S\4S jrSr	g)
Once   zExecute 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    [        5       U l        SU l        g )NF)r   _lock_done)selfs    Z/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/opentelemetry/util/_once.py__init__Once.__init__   s    V

    funcc                     U R                   (       a  gU R                     U R                   (       d  U" 5         SU l          SSS5        g SSS5        g! , (       d  f       g= f)zExecute ``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_onceOnce.do_once   sL     ::ZZ::!
	 Z 
  Z
 s   !A
A!r   )r   N)
__name__
__module____qualname____firstlineno____doc__r   r   boolr   __static_attributes__ r   r   r   r      s(    
HRX. 4 r   r   N)	threadingr   typingr   r   r   r   r   <module>r       s      r   