bgddlmZddlZddlmZddlmZmZGddeZ ej fdZ d Z e Z dS) )unicode_literalsN)Lock)mmap_key MmapedDictc.eZdZdZdZdZdZdZdZdS) MutexValuezA float protected by a mutex.Fc :d|_t|_dS)Ng)_valuer_lock)selftyp metric_namename labelnames labelvalueskwargss i/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/prometheus_client/values.py__init__zMutexValue.__init__s VV cf|j5|xj|z c_ddddS#1swxYwYdSNr r )r amounts rinczMutexValue.incs~ Z " " KK6 !KK " " " " " " " " " " " " " " " " " "s &**cT|j5||_ddddS#1swxYwYdSrr)r values rsetzMutexValue.setsu Z  DK                  s !!cR|j5|jcdddS#1swxYwYdSrr)r s rgetzMutexValue.getss Z  ;                  s   N) __name__ __module__ __qualname____doc__ _multiprocessrrrr rrr r s[''M"""   rr c~igditGfddt}|S)a8Returns a MmapedValue class based on a process_identifier function. The 'process_identifier' function MUST comply with this simple rule: when called in simultaneously running processes it MUST return distinct values. Using a different function than the default 'os.getpid' is at your own risk. rc`eZdZdZdZd fd ZfdZfdZfdZfdZ fd Z d S) &MultiProcessValue..MmapedValuezAA float protected by a mutex backed by a per-process mmaped file.Tc||||||f|_5|| |ddddS#1swxYwYdSr)_params"_MmapedValue__check_for_pid_change_MmapedValue__resetappend) r rrrrrmultiprocess_moderlockvaluess rrz/MultiProcessValue..MmapedValue.__init__4s T:{L]]DL $ $++---  d### $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s>AA #A c|j\}}}}}}|dkr |dz|z}n|}| vr\tjtjdd| d}t | |< ||_t|||||_ |j |j |_ dS)Ngauge_prometheus_multiproc_dirz {0}_{1}.dbr) r,ospathjoinenvironformatr_filer_key read_valuer ) r rrrrrr0 file_prefixfilenamefilespids r__resetz.MultiProcessValue..MmapedValue.__reset;sQUQ] NCdJ =Ng~~!Ci*;; ! %''7<<J9: '' S\BBDD&0%9%9k"{+DJ dJ LLDI*// ::DKKKrc}d|kr]|d<D]}|D]}|dSdS)Nr)r2closeclearr.)r actual_pidfrrArBprocess_identifierr2s r__check_for_pid_changez=MultiProcessValue..MmapedValue.__check_for_pid_changeKs++--J7|z)))G AGGIIII #$$EMMOOOO*) $$rc5||xj|z c_|j|j|jddddS#1swxYwYdSrr-r r< write_valuer=)r rr1s rrz*MultiProcessValue..MmapedValue.incVs ? ?++--- v%  &&ty$+>>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?sA AA"Ac5|||_|j|j|jddddS#1swxYwYdSrrL)r rr1s rrz*MultiProcessValue..MmapedValue.set\s ? ?++---#  &&ty$+>>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?sAAAAcr5||jcdddS#1swxYwYdSr)r-r )r r1s rr z*MultiProcessValue..MmapedValue.getbs # #++---{ # # # # # # # # # # # # # # # # # #s ,00N)r*) r!r"r#r$r%rr.r-rrr )rAr1rBrIr2sr MmapedValuer)/sOO  $ $ $ $ $ $ $ ; ; ; ; ; ; $ $ $ $ $ $ $ $ ? ? ? ? ?  ? ? ? ? ?  # # # # # # #rrP)robject)rIrPrAr1rBr2s` @@@@rMultiProcessValuerRs E F &&(( )C 66D6#6#6#6#6#6#6#6#6#6#6#f6#6#6#p rcHdtjvrtStS)Nr6)r7r:rRr r&rrget_value_classrTjs# "RZ// """r) __future__rr7 threadingr mmap_dictrrrQr getpidrRrT ValueClassr&rrrZs'''''' ++++++++,*,HHHHV_   r