(2015-11-12, 14:40)Memphiz Wrote: Thats a cosmetic issue and it is as it is. Don't worry about it. (its a race condition between GUI Thread and sysinfo thread)
i resolve this issue in another way, i find the why the "busy“ comeout is because the systeminfo thread will block at function "dowork()" when send the url..
bool CSysInfoJob:
oWork()
{
m_info.systemUptime = GetSystemUpTime(false);
m_info.systemTotalUptime = GetSystemUpTime(true);
m_info.internetState = GetInternetState();
m_info.videoEncoder = GetVideoEncoder();
m_info.cpuFrequency = GetCPUFreqInfo();
m_info.osVersionInfo = CSysInfo::GetOsPrettyNameWithVersion() + " (kernel: " + CSysInfo::GetKernelName() + " " + CSysInfo::GetKernelVersionFull() + ")";
m_info.macAddress = GetMACAddress();
m_info.batteryLevel = GetBatteryLevel();
return true;
}
***********************************
CSysData::INTERNET_STATE CSysInfoJob::GetInternetState()
{
// Internet connection state!
XFILE::CCurlFile http;
if (http.IsInternet())
return CSysData::CONNECTED;
return CSysData:
ISCONNECTED;
}
********************************
// Detect whether we are "online" or not! Very simple and dirty!
bool CCurlFile::IsInternet()
{
CURL url("http://www.msftncsi.com/ncsi.txt");
bool found = Exists(url);
if (!found)
{
// fallback
Close();
url.Parse("http://www.w3.org/");
found = Exists(url);
}
Close();
return found;
}
so i create a new thread run function IsInternet() ,use a variation "temp" to store the status every 60 sec, and in dowork m_info.internetState = temp;
that's useful, but i think the best way is find out where kodi set the "busy" word to screen, and change "busy" into last status(dowork will run once every 20 second ), but i cant find the right place , do you got some idea? thanks