Skip to content
Snippets Groups Projects

ProcStats : Use mutex lock to make fetch() thread safe.

Merged Christopher Rob Jones requested to merge jonrob/Gaudi:ProcStats-thread-safe into master
All threads resolved!
Compare and Show latest version
2 files
+ 13
13
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -259,13 +259,13 @@ void ProcStats::open_ufd() {
bool ProcStats::fetch( procInfo& f ) {
if ( !m_valid ) { return false; }
std::scoped_lock lock{m_mutex};
std::scoped_lock lock{ m_mutex };
#if defined( __linux__ ) or defined( __APPLE__ )
double pr_size{0}, pr_rssize{0};
double pr_size{ 0 }, pr_rssize{ 0 };
linux_proc pinfo;
int cnt{0};
int cnt{ 0 };
char buf[500];
m_ufd.lseek( 0, SEEK_SET );
@@ -296,6 +296,11 @@ bool ProcStats::fetch( procInfo& f ) {
f.vsize = pr_size / ( 1024 * 1024 );
f.rss = pr_rssize * m_pg_size / ( 1024 * 1024 );
if ( 0 == pinfo.vsize ) {
std::cerr << "ProcStats : 0==vsize -> Will try reopening process proc stats" << std::endl;
open_ufd();
}
}
#else
@@ -308,10 +313,5 @@ bool ProcStats::fetch( procInfo& f ) {
m_curr.rss = f.rss;
m_curr.vsize = f.vsize;
if ( 0 == m_curr.vsize ) {
std::cerr << "ProcStats : 0==vsize -> Will try reopening process proc stats" << std::endl;
open_ufd();
}
return rc;
}
Loading