{"action":"created","issue":{"url":"https://api.github.com/repos/cms-sw/cmssw/issues/11441","labels_url":"https://api.github.com/repos/cms-sw/cmssw/issues/11441/labels{/name}","comments_url":"https://api.github.com/repos/cms-sw/cmssw/issues/11441/comments","events_url":"https://api.github.com/repos/cms-sw/cmssw/issues/11441/events","html_url":"https://github.com/cms-sw/cmssw/pull/11441","id":107984345,"number":11441,"title":"Avoid unnecessary locks in ROOT function GetBaseClassOffset()","user":{"login":"wmtan","id":4268350,"avatar_url":"https://avatars.githubusercontent.com/u/4268350?v=3","gravatar_id":"","url":"https://api.github.com/users/wmtan","html_url":"https://github.com/wmtan","followers_url":"https://api.github.com/users/wmtan/followers","following_url":"https://api.github.com/users/wmtan/following{/other_user}","gists_url":"https://api.github.com/users/wmtan/gists{/gist_id}","starred_url":"https://api.github.com/users/wmtan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wmtan/subscriptions","organizations_url":"https://api.github.com/users/wmtan/orgs","repos_url":"https://api.github.com/users/wmtan/repos","events_url":"https://api.github.com/users/wmtan/events{/privacy}","received_events_url":"https://api.github.com/users/wmtan/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/analysis-pending","name":"analysis-pending","color":"fbca04"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/comparison-pending","name":"comparison-pending","color":"fef2c0"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/core-approved","name":"core-approved","color":"009800"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/orp-pending","name":"orp-pending","color":"fbca04"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/pending-signatures","name":"pending-signatures","color":"eb6420"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/tests-approved","name":"tests-approved","color":"009800"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/cms-sw/cmssw/milestones/55","html_url":"https://github.com/cms-sw/cmssw/milestones/Next%20CMSSW_7_6_X","labels_url":"https://api.github.com/repos/cms-sw/cmssw/milestones/55/labels","id":1176788,"number":55,"title":"Next CMSSW_7_6_X","description":"","creator":{"login":"smuzaffar","id":4115138,"avatar_url":"https://avatars.githubusercontent.com/u/4115138?v=3","gravatar_id":"","url":"https://api.github.com/users/smuzaffar","html_url":"https://github.com/smuzaffar","followers_url":"https://api.github.com/users/smuzaffar/followers","following_url":"https://api.github.com/users/smuzaffar/following{/other_user}","gists_url":"https://api.github.com/users/smuzaffar/gists{/gist_id}","starred_url":"https://api.github.com/users/smuzaffar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smuzaffar/subscriptions","organizations_url":"https://api.github.com/users/smuzaffar/orgs","repos_url":"https://api.github.com/users/smuzaffar/repos","events_url":"https://api.github.com/users/smuzaffar/events{/privacy}","received_events_url":"https://api.github.com/users/smuzaffar/received_events","type":"User","site_admin":false},"open_issues":73,"closed_issues":744,"state":"open","created_at":"2015-06-23T07:27:04Z","updated_at":"2015-09-25T21:46:08Z","due_on":null,"closed_at":null},"comments":9,"created_at":"2015-09-23T18:58:03Z","updated_at":"2015-09-25T21:59:45Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/cms-sw/cmssw/pulls/11441","html_url":"https://github.com/cms-sw/cmssw/pull/11441","diff_url":"https://github.com/cms-sw/cmssw/pull/11441.diff","patch_url":"https://github.com/cms-sw/cmssw/pull/11441.patch"},"body":"The ROOT function GetBaseClassOffset() does locking that seriously hurts threading efficiency, especially in analysis jobs using pat::. In the vast majority of the cases (in fact in all cases so far observed), the actual offset to the base class object from the derived class object was 0.\r\nThis PR replaces  GetBaseClassOffset() with a call to a function of a class template  that returns 0 by default. In cases where the actual offset is non-zero, the class can be specialized to return the proper value. In cases where the true offset is non-zero, and the class has not been properly specialized, a segfault should result, which will be noticed."},"comment":{"url":"https://api.github.com/repos/cms-sw/cmssw/issues/comments/143363550","html_url":"https://github.com/cms-sw/cmssw/pull/11441#issuecomment-143363550","issue_url":"https://api.github.com/repos/cms-sw/cmssw/issues/11441","id":143363550,"user":{"login":"cmsbuild","id":4170616,"avatar_url":"https://avatars.githubusercontent.com/u/4170616?v=3","gravatar_id":"","url":"https://api.github.com/users/cmsbuild","html_url":"https://github.com/cmsbuild","followers_url":"https://api.github.com/users/cmsbuild/followers","following_url":"https://api.github.com/users/cmsbuild/following{/other_user}","gists_url":"https://api.github.com/users/cmsbuild/gists{/gist_id}","starred_url":"https://api.github.com/users/cmsbuild/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cmsbuild/subscriptions","organizations_url":"https://api.github.com/users/cmsbuild/orgs","repos_url":"https://api.github.com/users/cmsbuild/repos","events_url":"https://api.github.com/users/cmsbuild/events{/privacy}","received_events_url":"https://api.github.com/users/cmsbuild/received_events","type":"User","site_admin":false},"created_at":"2015-09-25T21:59:45Z","updated_at":"2015-09-25T21:59:45Z","body":"Comparison is ready\nhttps://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-11441/8389/summary.html"}}