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
1 file
+ 6
7
Compare changes
  • Side-by-side
  • Inline
@@ -263,12 +263,11 @@ bool ProcStats::fetch( procInfo& f ) {
#if defined( __linux__ ) or defined( __APPLE__ )
double pr_size{0}, pr_rssize{0};
linux_proc pinfo;
int cnt{0};
char buf[500];
auto read_proc = [&]() {
int cnt{0};
char buf[500];
m_ufd.lseek( 0, SEEK_SET );
if ( ( cnt = m_ufd.read( buf, sizeof( buf ) ) ) < 0 ) {
std::cerr << "ProcStats : LINUX Read of Proc file failed:" << std::endl;
@@ -289,10 +288,10 @@ bool ProcStats::fetch( procInfo& f ) {
&pinfo.kstkesp, &pinfo.kstkeip, &pinfo.signal, &pinfo.blocked, &pinfo.sigignore, &pinfo.sigcatch,
&pinfo.wchan );
// resident set size in pages
pr_size = (double)pinfo.vsize;
pr_rssize = (double)pinfo.rss;
f.vsize = pr_size / ( 1024 * 1024 );
f.rss = pr_rssize * m_pg_size / ( 1024 * 1024 );
const auto pr_size = (double)pinfo.vsize;
const auto pr_rssize = (double)pinfo.rss;
f.vsize = pr_size / ( 1024 * 1024 );
f.rss = pr_rssize * m_pg_size / ( 1024 * 1024 );
}
return true;
};
Loading