On Thu, Mar 6, 2014 at 5:23 PM, Chris Jones <notifications@github.com>wrote:

> In EventFilter/Utilities/plugins/FastMonitoringService.cc:
>
> >  	  // Compute throughput
> > -	  unsigned int secondsForLumi = lumiStopTime_.tv_sec - lumiStartTime_.tv_sec;
> > -	  fmt_.m_data.throughputJ_.value() = double(fmt_.m_data.accuSize_) / double(secondsForLumi) / double(1024*1024);
> > +	  timeval stt = lumiStartTime_[lumi];
> > +	  unsigned long usecondsForLumi = (lumiStopTime.tv_sec - stt.tv_sec)*1000000
> > +		                  + (lumiStopTime.tv_usec - stt.tv_usec);
> > +	  unsigned long accuSize = accuSize_.find(lumi)==accuSize_.end() ? 0 : accuSize_[lumi];
> > +	  double throughput = throughputFactor()* double(accuSize) / double(usecondsForLumi);
> > +	  //store to registered variable
> > +	  fmt_.m_data.fastThroughputJ_.value() = throughput;
>
> data race
>

On inspection, I see now that I introduced the race with the threaded
reading in FedrawDataInputSource. Protection using the "monlock" for the
other access to accuSize_ will correct this.
(will also look in more detail).

> --
> Reply to this email directly or view it on GitHub<https://github.com/cms-sw/cmssw/pull/2661/files#r10348285>
> .
>