{"action":"closed","number":11441,"pull_request":{"url":"https://api.github.com/repos/cms-sw/cmssw/pulls/11441","id":45817352,"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","issue_url":"https://api.github.com/repos/cms-sw/cmssw/issues/11441","number":11441,"state":"closed","locked":false,"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},"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.","created_at":"2015-09-23T18:58:03Z","updated_at":"2015-09-26T11:53:17Z","closed_at":"2015-09-26T11:53:17Z","merged_at":"2015-09-26T11:53:17Z","merge_commit_sha":"e091e876b3eaac4314b6b431897d34448698a5ae","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":79,"closed_issues":746,"state":"open","created_at":"2015-06-23T07:27:04Z","updated_at":"2015-09-26T11:53:17Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/cms-sw/cmssw/pulls/11441/commits","review_comments_url":"https://api.github.com/repos/cms-sw/cmssw/pulls/11441/comments","review_comment_url":"https://api.github.com/repos/cms-sw/cmssw/pulls/comments{/number}","comments_url":"https://api.github.com/repos/cms-sw/cmssw/issues/11441/comments","statuses_url":"https://api.github.com/repos/cms-sw/cmssw/statuses/7b60ff66b08b2c4e7349623f85c8bbed05e3abc2","head":{"label":"wmtan:AvoidUnnecessaryLocks","ref":"AvoidUnnecessaryLocks","sha":"7b60ff66b08b2c4e7349623f85c8bbed05e3abc2","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},"repo":{"id":10977262,"name":"cmssw","full_name":"wmtan/cmssw","owner":{"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},"private":false,"html_url":"https://github.com/wmtan/cmssw","description":"CMS Offline Software","fork":true,"url":"https://api.github.com/repos/wmtan/cmssw","forks_url":"https://api.github.com/repos/wmtan/cmssw/forks","keys_url":"https://api.github.com/repos/wmtan/cmssw/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wmtan/cmssw/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wmtan/cmssw/teams","hooks_url":"https://api.github.com/repos/wmtan/cmssw/hooks","issue_events_url":"https://api.github.com/repos/wmtan/cmssw/issues/events{/number}","events_url":"https://api.github.com/repos/wmtan/cmssw/events","assignees_url":"https://api.github.com/repos/wmtan/cmssw/assignees{/user}","branches_url":"https://api.github.com/repos/wmtan/cmssw/branches{/branch}","tags_url":"https://api.github.com/repos/wmtan/cmssw/tags","blobs_url":"https://api.github.com/repos/wmtan/cmssw/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wmtan/cmssw/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wmtan/cmssw/git/refs{/sha}","trees_url":"https://api.github.com/repos/wmtan/cmssw/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wmtan/cmssw/statuses/{sha}","languages_url":"https://api.github.com/repos/wmtan/cmssw/languages","stargazers_url":"https://api.github.com/repos/wmtan/cmssw/stargazers","contributors_url":"https://api.github.com/repos/wmtan/cmssw/contributors","subscribers_url":"https://api.github.com/repos/wmtan/cmssw/subscribers","subscription_url":"https://api.github.com/repos/wmtan/cmssw/subscription","commits_url":"https://api.github.com/repos/wmtan/cmssw/commits{/sha}","git_commits_url":"https://api.github.com/repos/wmtan/cmssw/git/commits{/sha}","comments_url":"https://api.github.com/repos/wmtan/cmssw/comments{/number}","issue_comment_url":"https://api.github.com/repos/wmtan/cmssw/issues/comments{/number}","contents_url":"https://api.github.com/repos/wmtan/cmssw/contents/{+path}","compare_url":"https://api.github.com/repos/wmtan/cmssw/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wmtan/cmssw/merges","archive_url":"https://api.github.com/repos/wmtan/cmssw/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wmtan/cmssw/downloads","issues_url":"https://api.github.com/repos/wmtan/cmssw/issues{/number}","pulls_url":"https://api.github.com/repos/wmtan/cmssw/pulls{/number}","milestones_url":"https://api.github.com/repos/wmtan/cmssw/milestones{/number}","notifications_url":"https://api.github.com/repos/wmtan/cmssw/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wmtan/cmssw/labels{/name}","releases_url":"https://api.github.com/repos/wmtan/cmssw/releases{/id}","created_at":"2013-06-26T19:44:14Z","updated_at":"2014-06-24T22:32:58Z","pushed_at":"2015-09-23T20:03:43Z","git_url":"git://github.com/wmtan/cmssw.git","ssh_url":"git@github.com:wmtan/cmssw.git","clone_url":"https://github.com/wmtan/cmssw.git","svn_url":"https://github.com/wmtan/cmssw","homepage":null,"size":703721,"stargazers_count":1,"watchers_count":1,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":1,"default_branch":"CMSSW_7_0_X"}},"base":{"label":"cms-sw:CMSSW_7_6_X","ref":"CMSSW_7_6_X","sha":"2315273a3ba054696c8f7f330192c8468c3177b7","user":{"login":"cms-sw","id":3863500,"avatar_url":"https://avatars.githubusercontent.com/u/3863500?v=3","gravatar_id":"","url":"https://api.github.com/users/cms-sw","html_url":"https://github.com/cms-sw","followers_url":"https://api.github.com/users/cms-sw/followers","following_url":"https://api.github.com/users/cms-sw/following{/other_user}","gists_url":"https://api.github.com/users/cms-sw/gists{/gist_id}","starred_url":"https://api.github.com/users/cms-sw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cms-sw/subscriptions","organizations_url":"https://api.github.com/users/cms-sw/orgs","repos_url":"https://api.github.com/users/cms-sw/repos","events_url":"https://api.github.com/users/cms-sw/events{/privacy}","received_events_url":"https://api.github.com/users/cms-sw/received_events","type":"Organization","site_admin":false},"repo":{"id":10969551,"name":"cmssw","full_name":"cms-sw/cmssw","owner":{"login":"cms-sw","id":3863500,"avatar_url":"https://avatars.githubusercontent.com/u/3863500?v=3","gravatar_id":"","url":"https://api.github.com/users/cms-sw","html_url":"https://github.com/cms-sw","followers_url":"https://api.github.com/users/cms-sw/followers","following_url":"https://api.github.com/users/cms-sw/following{/other_user}","gists_url":"https://api.github.com/users/cms-sw/gists{/gist_id}","starred_url":"https://api.github.com/users/cms-sw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cms-sw/subscriptions","organizations_url":"https://api.github.com/users/cms-sw/orgs","repos_url":"https://api.github.com/users/cms-sw/repos","events_url":"https://api.github.com/users/cms-sw/events{/privacy}","received_events_url":"https://api.github.com/users/cms-sw/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/cms-sw/cmssw","description":"CMS Offline Software","fork":false,"url":"https://api.github.com/repos/cms-sw/cmssw","forks_url":"https://api.github.com/repos/cms-sw/cmssw/forks","keys_url":"https://api.github.com/repos/cms-sw/cmssw/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cms-sw/cmssw/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cms-sw/cmssw/teams","hooks_url":"https://api.github.com/repos/cms-sw/cmssw/hooks","issue_events_url":"https://api.github.com/repos/cms-sw/cmssw/issues/events{/number}","events_url":"https://api.github.com/repos/cms-sw/cmssw/events","assignees_url":"https://api.github.com/repos/cms-sw/cmssw/assignees{/user}","branches_url":"https://api.github.com/repos/cms-sw/cmssw/branches{/branch}","tags_url":"https://api.github.com/repos/cms-sw/cmssw/tags","blobs_url":"https://api.github.com/repos/cms-sw/cmssw/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cms-sw/cmssw/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cms-sw/cmssw/git/refs{/sha}","trees_url":"https://api.github.com/repos/cms-sw/cmssw/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cms-sw/cmssw/statuses/{sha}","languages_url":"https://api.github.com/repos/cms-sw/cmssw/languages","stargazers_url":"https://api.github.com/repos/cms-sw/cmssw/stargazers","contributors_url":"https://api.github.com/repos/cms-sw/cmssw/contributors","subscribers_url":"https://api.github.com/repos/cms-sw/cmssw/subscribers","subscription_url":"https://api.github.com/repos/cms-sw/cmssw/subscription","commits_url":"https://api.github.com/repos/cms-sw/cmssw/commits{/sha}","git_commits_url":"https://api.github.com/repos/cms-sw/cmssw/git/commits{/sha}","comments_url":"https://api.github.com/repos/cms-sw/cmssw/comments{/number}","issue_comment_url":"https://api.github.com/repos/cms-sw/cmssw/issues/comments{/number}","contents_url":"https://api.github.com/repos/cms-sw/cmssw/contents/{+path}","compare_url":"https://api.github.com/repos/cms-sw/cmssw/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cms-sw/cmssw/merges","archive_url":"https://api.github.com/repos/cms-sw/cmssw/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cms-sw/cmssw/downloads","issues_url":"https://api.github.com/repos/cms-sw/cmssw/issues{/number}","pulls_url":"https://api.github.com/repos/cms-sw/cmssw/pulls{/number}","milestones_url":"https://api.github.com/repos/cms-sw/cmssw/milestones{/number}","notifications_url":"https://api.github.com/repos/cms-sw/cmssw/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cms-sw/cmssw/labels{/name}","releases_url":"https://api.github.com/repos/cms-sw/cmssw/releases{/id}","created_at":"2013-06-26T14:09:07Z","updated_at":"2015-09-25T15:09:47Z","pushed_at":"2015-09-26T11:53:17Z","git_url":"git://github.com/cms-sw/cmssw.git","ssh_url":"git@github.com:cms-sw/cmssw.git","clone_url":"https://github.com/cms-sw/cmssw.git","svn_url":"https://github.com/cms-sw/cmssw","homepage":"http://cms-sw.github.io/","size":1294295,"stargazers_count":260,"watchers_count":260,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1571,"mirror_url":null,"open_issues_count":262,"forks":1571,"open_issues":262,"watchers":260,"default_branch":"CMSSW_7_6_X"}},"_links":{"self":{"href":"https://api.github.com/repos/cms-sw/cmssw/pulls/11441"},"html":{"href":"https://github.com/cms-sw/cmssw/pull/11441"},"issue":{"href":"https://api.github.com/repos/cms-sw/cmssw/issues/11441"},"comments":{"href":"https://api.github.com/repos/cms-sw/cmssw/issues/11441/comments"},"review_comments":{"href":"https://api.github.com/repos/cms-sw/cmssw/pulls/11441/comments"},"review_comment":{"href":"https://api.github.com/repos/cms-sw/cmssw/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/cms-sw/cmssw/pulls/11441/commits"},"statuses":{"href":"https://api.github.com/repos/cms-sw/cmssw/statuses/7b60ff66b08b2c4e7349623f85c8bbed05e3abc2"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"davidlange6","id":5042883,"avatar_url":"https://avatars.githubusercontent.com/u/5042883?v=3","gravatar_id":"","url":"https://api.github.com/users/davidlange6","html_url":"https://github.com/davidlange6","followers_url":"https://api.github.com/users/davidlange6/followers","following_url":"https://api.github.com/users/davidlange6/following{/other_user}","gists_url":"https://api.github.com/users/davidlange6/gists{/gist_id}","starred_url":"https://api.github.com/users/davidlange6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidlange6/subscriptions","organizations_url":"https://api.github.com/users/davidlange6/orgs","repos_url":"https://api.github.com/users/davidlange6/repos","events_url":"https://api.github.com/users/davidlange6/events{/privacy}","received_events_url":"https://api.github.com/users/davidlange6/received_events","type":"User","site_admin":false},"comments":9,"review_comments":7,"commits":3,"additions":78,"deletions":24,"changed_files":8}}