Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Made const functions of AssociationVector thread safe #1268

Merged

Conversation

Dr15Jones
Copy link
Contributor

The AssociationVector uses a cache, transientVector_. The management of that cache is now thread safe if multiple threads call const functions simultaneously.

The AssociationVector uses a cache, transientVector_. The management of that cache is now thread safe if multiple threads call const functions simultaneously.
@cmsbuild
Copy link
Contributor

A new Pull Request was created by @Dr15Jones (Chris Jones) for CMSSW_7_0_X.

Made const functions of AssociationVector thread safe

It involves the following packages:

DataFormats/Common

@Dr15Jones, @ktf, @nclopezo can you please review it and eventually sign? Thanks.
@wmtan this is something you requested to watch as well.
You can sign-off by replying to this message having '+1' in the first line of your reply.
You can reject by replying to this message having '-1' in the first line of your reply.
@ktf you are the release manager for this.

@Dr15Jones
Copy link
Contributor Author

+1
If Jenkin's is OK.

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next IBs unless changes or unless it breaks tests. @ktf can you please take care of it?

@cmsbuild
Copy link
Contributor

cmsbuild commented Nov 1, 2013

-1
I found an error when building:

    l.process_files()
  File "/afs/cern.ch/cms/sw/ReleaseCandidates/vol0/slc5_amd64_gcc481/lcg/root/5.34.10//lib/python/genreflex/genreflex.py", line 408, in process_files
    os.remove(dicfile)
OSError: [Errno 2] No such file or directory: 'tmp/slc5_amd64_gcc481/src/DataFormats/TrackReco/src/DataFormatsTrackReco/a/xr.cc'
gmake: **\* [tmp/slc5_amd64_gcc481/src/DataFormats/TrackReco/src/DataFormatsTrackReco/a/xr.cc] Error 1
gmake: **\* Waiting for unfinished jobs....


you can see the results of the tests here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/1124/summary.html

@ktf
Copy link
Contributor

ktf commented Nov 1, 2013

Moving this to next milestone.

-switched to the standard CPP defines used to hide C++11 constructs from ROOT
-fixed a typo in one of the constructors
-worked around an apparent gcc bug which did not allow me to specify a memory order
 for the compare_exchange_strong atomic method.
fixed_ was declared a transient data member of AssociationVector.
However, fixed_ has been removed and if we do not remove it from
the Reflex transient storage declaration the Reflex parser dies.
@Dr15Jones
Copy link
Contributor Author

+1
This is purely a technical change (removed transient declarations in classes_def.xml files for the fixed_ member data which is no longer in the class). If Jenkin's passes I suggest bypassing the other signatures.

@cmsbuild
Copy link
Contributor

cmsbuild commented Nov 2, 2013

Pull request #1268 was updated. @civanch, @nclopezo, @mdhildreth, @thspeer, @giamman, @slava77, @vadler can you please check and sign again.

@Dr15Jones
Copy link
Contributor Author

+1
Just in case my prevous +1 was done too quickly :).

@nclopezo
Copy link
Contributor

nclopezo commented Nov 4, 2013

ktf added a commit that referenced this pull request Nov 4, 2013
…oducts

Multithreading fixes -- Made const functions of AssociationVector thread safe
@ktf ktf merged commit 259c5d2 into cms-sw:CMSSW_7_0_X Nov 4, 2013
@Dr15Jones Dr15Jones deleted the threadSafeDataFormatsCommonProducts branch November 14, 2013 14:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants