+
    Bi?                         ^ 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
#//dE4H#//dE4H  !2!2B;    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-    
 DMM4((  "r   c                D   V! VR 4      w  rEV! RV^4      w  pV! RWF4      w  rxWg,           p	Wh,           p
W8  d2   V! RWJ4      w  rp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DvIby!*!3*1#t*L'& ::!**}44}9LMNDJ'LL 67T\\*S->>DJr   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    
 ==$DMM"$--$4==!4==!,00DMDM %r   c                    V P                   # r9   )r   r   s   &r   
getloadavgWindowsLoadTracker.getloadavg   s    zz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            DHH.344 
m mr   