+
    öÙ†j?  ã                   ó’   € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^t^]P                  ! ]^<,          4      ,          t^t	 ! R R4      t
R# )é    Nc                   ó  a € ] tR t^t o RtR t]P                  ]P                  3R lt
]P                  ]P                  ]P                  3R ltR
R lt]P                  ]P$                  ]P                  3R ltR tRtV tR	# )ÚWindowsLoadTrackerzÎ
This class asynchronously reads the performance counters to calculate
the system load on Windows.  A "raw" thread is used here to prevent
interference with the test suite's cases for the threading module.
c                óB  € R V n         R V n        \        P                  ! \        P                  4       . V n        R V n        \        P                  ! R RRR 4      V n         \        P                  ! R RRR 4      V n        \        P                  ! V P                  R/ 4       R # )NTF© )Ú_runningÚ_stoppedÚwinregÚQueryInfoKeyÚHKEY_PERFORMANCE_DATAÚ_valuesÚ_loadÚ_overlappedÚCreateEventÚ_threadÚstart_new_threadÚ_update_load©Úselfs   &Ú1/usr/lib/python3.14/test/libregrtest/win_utils.pyÚ__init__ÚWindowsLoadTracker.__init__   s|   € àˆŒØˆŒô 	×ÒœF×8Ñ8Ô9àˆŒØˆŒ
Ü#×/Ò/°°d¸EÀ4ÓHˆŒÜ#×/Ò/°°d¸EÀ4ÓHˆŒä× Ò  ×!2Ñ!2°B¸Ö;ó    c                ó€   € V! V P                   R 4      '       d   V P                  4        K+  V! V P                  4       R# )iè  N)r   Ú_calculate_loadr   )r   Ú_waitÚ_signals   &&&r   r   ÚWindowsLoadTracker._update_load*   s-   € ñ
 �D—M‘M 4×(Ò(Ø× Ñ Ö"á�—‘Ör   c                óD  € V! VR 4      w  rEV! RV^4      w  pV! RWF4      w  rxWg,           p	Wh,           p
W©8  d2   V! RWJ4      w  r¼pW«,          p
V^,8X  g   K#  W�,           pV! RWN4      w  pMR# V P                   e8   V P                   \        ,          VR\        ,
          ,          ,           V n         R# \        V P                  4      \        8  d   V P                  P                  V4       R# \        V P                  4      \        V P                  4      ,          V n         R# )Ú2ÚLÚ4xLLÚLL28xLNg      ð?)r   ÚLOAD_FACTOR_1Úlenr   ÚNVALUEÚappendÚsum)r   Ú_queryÚ_hkeyÚ_unpackÚdataÚ_Ú	obj_startÚ
data_startÚ
defn_startÚ	data_baseÚ	defn_baseÚsizeÚidxÚoffsetÚcounter_offsetÚprocessor_queue_lengths   &&&&            r   r   Ú"WindowsLoadTracker._calculate_load4   sü   € ñ ˜ Ó$‰ˆñ ˜S $¨Ó+‰
ˆ	ñ ")¨°Ó!AÑˆ
ØÕ*ˆ	ØÕ*ˆ	àÔ#ñ !(¨°$Ó BÑˆD�vØÕˆIØ�bŽyØ!*Õ!3�á*1°#°tÓ*LÑ'Ð&Øáð �:‰:Ò!ØŸ*™*¤}Õ4Ø4¸¼}Õ9LÕMõNˆDŽJä�—‘Ó¤Ô'Ø�L‰L×ÑÐ 6Ö7ä˜TŸ\™\Ó*¬S°·±Ó->Õ>ˆDŽJr   c                ó&   € V P                  4        R # ©N)Ú__del__)r   Úkills   &&r   ÚcloseÚWindowsLoadTracker.closel   s   € Ø�‰ŒÙr   c                óÔ   € V P                   eZ   V! V P                   4       V! V P                  R4       V! V P                   4       V! V P                  4       R ;V n         V n        R # R # )Néÿÿÿÿ)r   r   )r   r   Ú_closer   s   &&&&r   r:   ÚWindowsLoadTracker.__del__p   sS   € ð
 �=‰=Ò$á�D—M‘MÔ"á�$—-‘- Ô$á�4—=‘=Ô!Ù�4—=‘=Ô!Ø,0Ð0ˆDŒM˜DžMñ %r   c                ó   € V P                   # r9   )r   r   s   &r   Ú
getloadavgÚWindowsLoadTracker.getloadavg   s   € Ø�z‰zÐr   )r   r   r   r   N)T)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú_winapiÚWaitForSingleObjectr   ÚSetEventr   r	   ÚQueryValueExr   ÚstructÚunpack_fromr   r<   ÚCloseHandler:   rC   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      s|   ø‡ € ñò<ð$ #×6Ñ6Ø(×1Ñ1ôð  &×2Ñ2Ø$×:Ñ:Ø &× 2Ñ 2ô	6?ôpð ×1Ñ1Ø×*Ñ*Ø#×,Ñ,ô	1÷ð r   r   )r   r   rJ   ÚmathrN   r	   ÚSAMPLING_INTERVALÚexpr#   r%   r   r   r   r   Ú<module>rW      sM   ðÛ Û Û Û Û Û ð Ð ð �D—H’HÐ.°Õ3Ó4Õ4€ð 
€÷mó mr   