- October 17, 2007
- 764
- 59
- Home Country
-
Germany
Hey guys,
I did a quick'n'dirty patch for the NetworkMonitor... attached the patch and here some line of the tv.log...
perhaps this helps some devs?
what i found by searching around: (comment in the reference source for PerformanceCounterLib.GetData)
I did a quick'n'dirty patch for the NetworkMonitor... attached the patch and here some line of the tv.log...
Code:
[TVService(6)]: NetworkMonitorHandler: networkMonitor started
[TVService(6)]: NetworkMonitorHandler: idle limit in KB/s: 75
.
.
.
[PowerScheduler poll thread(14)]: NetworkMonitorHandler: standby prevented: Atheros AR9285 Wireless Network Adapter
[PowerScheduler poll thread(14)]: NetworkMonitorHandler: ulSpeed: 65
[PowerScheduler poll thread(14)]: NetworkMonitorHandler: dlSpeed: 3039
[PowerScheduler poll thread(14)]: PowerScheduler: User input detected at 08.01.2011 14:37:11
[PowerScheduler poll thread(14)]: PowerScheduler.DisAllowShutdown: inspecting handler:NetworkMonitorHandler DisAllowShutdown:True
[PowerScheduler poll thread(14)]: PowerScheduler: System changed from idle state to busy state
perhaps this helps some devs?
what i found by searching around: (comment in the reference source for PerformanceCounterLib.GetData)
// Win32 RegQueryValueEx for perf data could deadlock (for a Mutex) up to 2mins in some
// scenarios before they detect it and exit gracefully. In the mean time, ERROR_BUSY,
// ERROR_NOT_READY etc can be seen by other concurrent calls (which is the reason for the
// wait loop and switch case below). We want to wait most certainly more than a 2min window.
// The curent wait time of up to 10mins takes care of the known stress deadlock issues. In most
// cases we wouldn't wait for more than 2mins anyways but in worst cases how much ever time
// we wait may not be sufficient if the Win32 code keeps running into this deadlock again
// and again. A condition very rare but possible in theory. We would get back to the user
// in this case with InvalidOperationException after the wait time expires.