{"action":"created","comment":{"url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/pulls/comments/130321014","pull_request_review_id":53181593,"id":130321014,"diff_hunk":"@@ -1 +1,4 @@\n+//! Synchronization primitives.\n+\n pub mod list;","path":"src/sync/mod.rs","position":3,"original_position":3,"commit_id":"5e47c9d9859c0c3134cd3e65824344646f4c7b5b","original_commit_id":"42c2fb50e75ceedf71022173b539aa6f75e519d9","user":{"login":"Vtec234","id":13901751,"avatar_url":"https://avatars3.githubusercontent.com/u/13901751?v=4","gravatar_id":"","url":"https://api.github.com/users/Vtec234","html_url":"https://github.com/Vtec234","followers_url":"https://api.github.com/users/Vtec234/followers","following_url":"https://api.github.com/users/Vtec234/following{/other_user}","gists_url":"https://api.github.com/users/Vtec234/gists{/gist_id}","starred_url":"https://api.github.com/users/Vtec234/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Vtec234/subscriptions","organizations_url":"https://api.github.com/users/Vtec234/orgs","repos_url":"https://api.github.com/users/Vtec234/repos","events_url":"https://api.github.com/users/Vtec234/events{/privacy}","received_events_url":"https://api.github.com/users/Vtec234/received_events","type":"User","site_admin":false},"body":"I am not opposed to reexporting structures from internal `crossbeam-rs` crates as part of the public interface, what I mean is rather that this might not be the `List` that we would want to expose. This is a longer discussion that requires its own RFC, but at least my opinion is that the API of this `List` implementation is too low-level. Firstly, it requires the user to provide `Scope` arguments, which the structures currently provided by `crossbeam` don't do. Secondly, the iteration interface has an `Abort` variant. While this is very nice for our purposes, I believe that for an external user who just wants to have a concurrent list, it exposes too much implementation detail and requires said user to understand why exactly iteration can abort, which is a peculiarity of the lock-free implementation.","created_at":"2017-07-31T10:38:50Z","updated_at":"2017-07-31T10:38:51Z","html_url":"https://github.com/crossbeam-rs/crossbeam-epoch/pull/4#discussion_r130321014","pull_request_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/pulls/4","_links":{"self":{"href":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/pulls/comments/130321014"},"html":{"href":"https://github.com/crossbeam-rs/crossbeam-epoch/pull/4#discussion_r130321014"},"pull_request":{"href":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/pulls/4"}}},"pull_request":{"url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/pulls/4","id":133113777,"html_url":"https://github.com/crossbeam-rs/crossbeam-epoch/pull/4","diff_url":"https://github.com/crossbeam-rs/crossbeam-epoch/pull/4.diff","patch_url":"https://github.com/crossbeam-rs/crossbeam-epoch/pull/4.patch","issue_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/issues/4","number":4,"state":"open","locked":false,"title":"Implement epoch management","user":{"login":"jeehoonkang","id":1201316,"avatar_url":"https://avatars0.githubusercontent.com/u/1201316?v=4","gravatar_id":"","url":"https://api.github.com/users/jeehoonkang","html_url":"https://github.com/jeehoonkang","followers_url":"https://api.github.com/users/jeehoonkang/followers","following_url":"https://api.github.com/users/jeehoonkang/following{/other_user}","gists_url":"https://api.github.com/users/jeehoonkang/gists{/gist_id}","starred_url":"https://api.github.com/users/jeehoonkang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeehoonkang/subscriptions","organizations_url":"https://api.github.com/users/jeehoonkang/orgs","repos_url":"https://api.github.com/users/jeehoonkang/repos","events_url":"https://api.github.com/users/jeehoonkang/events{/privacy}","received_events_url":"https://api.github.com/users/jeehoonkang/received_events","type":"User","site_admin":false},"body":"This is a subset of #3.  It implements epoch management.  The garbage management part will make a separate PR.","created_at":"2017-07-30T02:34:18Z","updated_at":"2017-07-31T10:38:51Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3e52b79ee94799efeb2463ca102c43abf8cb0256","assignee":null,"assignees":[],"requested_reviewers":[{"login":"schets","id":3722633,"avatar_url":"https://avatars0.githubusercontent.com/u/3722633?v=4","gravatar_id":"","url":"https://api.github.com/users/schets","html_url":"https://github.com/schets","followers_url":"https://api.github.com/users/schets/followers","following_url":"https://api.github.com/users/schets/following{/other_user}","gists_url":"https://api.github.com/users/schets/gists{/gist_id}","starred_url":"https://api.github.com/users/schets/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schets/subscriptions","organizations_url":"https://api.github.com/users/schets/orgs","repos_url":"https://api.github.com/users/schets/repos","events_url":"https://api.github.com/users/schets/events{/privacy}","received_events_url":"https://api.github.com/users/schets/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/pulls/4/commits","review_comments_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/pulls/4/comments","review_comment_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/pulls/comments{/number}","comments_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/issues/4/comments","statuses_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/statuses/5e47c9d9859c0c3134cd3e65824344646f4c7b5b","head":{"label":"jeehoonkang:epoch","ref":"epoch","sha":"5e47c9d9859c0c3134cd3e65824344646f4c7b5b","user":{"login":"jeehoonkang","id":1201316,"avatar_url":"https://avatars0.githubusercontent.com/u/1201316?v=4","gravatar_id":"","url":"https://api.github.com/users/jeehoonkang","html_url":"https://github.com/jeehoonkang","followers_url":"https://api.github.com/users/jeehoonkang/followers","following_url":"https://api.github.com/users/jeehoonkang/following{/other_user}","gists_url":"https://api.github.com/users/jeehoonkang/gists{/gist_id}","starred_url":"https://api.github.com/users/jeehoonkang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeehoonkang/subscriptions","organizations_url":"https://api.github.com/users/jeehoonkang/orgs","repos_url":"https://api.github.com/users/jeehoonkang/repos","events_url":"https://api.github.com/users/jeehoonkang/events{/privacy}","received_events_url":"https://api.github.com/users/jeehoonkang/received_events","type":"User","site_admin":false},"repo":{"id":97680713,"name":"crossbeam-epoch","full_name":"jeehoonkang/crossbeam-epoch","owner":{"login":"jeehoonkang","id":1201316,"avatar_url":"https://avatars0.githubusercontent.com/u/1201316?v=4","gravatar_id":"","url":"https://api.github.com/users/jeehoonkang","html_url":"https://github.com/jeehoonkang","followers_url":"https://api.github.com/users/jeehoonkang/followers","following_url":"https://api.github.com/users/jeehoonkang/following{/other_user}","gists_url":"https://api.github.com/users/jeehoonkang/gists{/gist_id}","starred_url":"https://api.github.com/users/jeehoonkang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeehoonkang/subscriptions","organizations_url":"https://api.github.com/users/jeehoonkang/orgs","repos_url":"https://api.github.com/users/jeehoonkang/repos","events_url":"https://api.github.com/users/jeehoonkang/events{/privacy}","received_events_url":"https://api.github.com/users/jeehoonkang/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jeehoonkang/crossbeam-epoch","description":"Epoch-based garbage collection","fork":true,"url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch","forks_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/forks","keys_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/teams","hooks_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/hooks","issue_events_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/issues/events{/number}","events_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/events","assignees_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/assignees{/user}","branches_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/branches{/branch}","tags_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/tags","blobs_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/git/refs{/sha}","trees_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/statuses/{sha}","languages_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/languages","stargazers_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/stargazers","contributors_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/contributors","subscribers_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/subscribers","subscription_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/subscription","commits_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/commits{/sha}","git_commits_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/git/commits{/sha}","comments_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/comments{/number}","issue_comment_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/issues/comments{/number}","contents_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/contents/{+path}","compare_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/merges","archive_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/downloads","issues_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/issues{/number}","pulls_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/pulls{/number}","milestones_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/milestones{/number}","notifications_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/labels{/name}","releases_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/releases{/id}","deployments_url":"https://api.github.com/repos/jeehoonkang/crossbeam-epoch/deployments","created_at":"2017-07-19T06:27:18Z","updated_at":"2017-07-19T06:27:20Z","pushed_at":"2017-07-31T04:14:43Z","git_url":"git://github.com/jeehoonkang/crossbeam-epoch.git","ssh_url":"git@github.com:jeehoonkang/crossbeam-epoch.git","clone_url":"https://github.com/jeehoonkang/crossbeam-epoch.git","svn_url":"https://github.com/jeehoonkang/crossbeam-epoch","homepage":null,"size":90,"stargazers_count":0,"watchers_count":0,"language":"Rust","has_issues":false,"has_projects":true,"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":0,"default_branch":"master"}},"base":{"label":"crossbeam-rs:master","ref":"master","sha":"206d662a64139c36deb66a6740b21bd47a5d7d08","user":{"login":"crossbeam-rs","id":26314159,"avatar_url":"https://avatars0.githubusercontent.com/u/26314159?v=4","gravatar_id":"","url":"https://api.github.com/users/crossbeam-rs","html_url":"https://github.com/crossbeam-rs","followers_url":"https://api.github.com/users/crossbeam-rs/followers","following_url":"https://api.github.com/users/crossbeam-rs/following{/other_user}","gists_url":"https://api.github.com/users/crossbeam-rs/gists{/gist_id}","starred_url":"https://api.github.com/users/crossbeam-rs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crossbeam-rs/subscriptions","organizations_url":"https://api.github.com/users/crossbeam-rs/orgs","repos_url":"https://api.github.com/users/crossbeam-rs/repos","events_url":"https://api.github.com/users/crossbeam-rs/events{/privacy}","received_events_url":"https://api.github.com/users/crossbeam-rs/received_events","type":"Organization","site_admin":false},"repo":{"id":92106962,"name":"crossbeam-epoch","full_name":"crossbeam-rs/crossbeam-epoch","owner":{"login":"crossbeam-rs","id":26314159,"avatar_url":"https://avatars0.githubusercontent.com/u/26314159?v=4","gravatar_id":"","url":"https://api.github.com/users/crossbeam-rs","html_url":"https://github.com/crossbeam-rs","followers_url":"https://api.github.com/users/crossbeam-rs/followers","following_url":"https://api.github.com/users/crossbeam-rs/following{/other_user}","gists_url":"https://api.github.com/users/crossbeam-rs/gists{/gist_id}","starred_url":"https://api.github.com/users/crossbeam-rs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crossbeam-rs/subscriptions","organizations_url":"https://api.github.com/users/crossbeam-rs/orgs","repos_url":"https://api.github.com/users/crossbeam-rs/repos","events_url":"https://api.github.com/users/crossbeam-rs/events{/privacy}","received_events_url":"https://api.github.com/users/crossbeam-rs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/crossbeam-rs/crossbeam-epoch","description":"Epoch-based garbage collection","fork":false,"url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch","forks_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/forks","keys_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/keys{/key_id}","collaborators_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/teams","hooks_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/hooks","issue_events_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/issues/events{/number}","events_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/events","assignees_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/assignees{/user}","branches_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/branches{/branch}","tags_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/tags","blobs_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/git/refs{/sha}","trees_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/git/trees{/sha}","statuses_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/statuses/{sha}","languages_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/languages","stargazers_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/stargazers","contributors_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/contributors","subscribers_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/subscribers","subscription_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/subscription","commits_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/commits{/sha}","git_commits_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/git/commits{/sha}","comments_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/comments{/number}","issue_comment_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/issues/comments{/number}","contents_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/contents/{+path}","compare_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/compare/{base}...{head}","merges_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/merges","archive_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/downloads","issues_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/issues{/number}","pulls_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/pulls{/number}","milestones_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/milestones{/number}","notifications_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/labels{/name}","releases_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/releases{/id}","deployments_url":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/deployments","created_at":"2017-05-22T23:05:37Z","updated_at":"2017-07-28T02:50:27Z","pushed_at":"2017-07-31T04:14:44Z","git_url":"git://github.com/crossbeam-rs/crossbeam-epoch.git","ssh_url":"git@github.com:crossbeam-rs/crossbeam-epoch.git","clone_url":"https://github.com/crossbeam-rs/crossbeam-epoch.git","svn_url":"https://github.com/crossbeam-rs/crossbeam-epoch","homepage":null,"size":13,"stargazers_count":2,"watchers_count":2,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"open_issues_count":2,"forks":5,"open_issues":2,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/pulls/4"},"html":{"href":"https://github.com/crossbeam-rs/crossbeam-epoch/pull/4"},"issue":{"href":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/issues/4"},"comments":{"href":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/issues/4/comments"},"review_comments":{"href":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/pulls/4/comments"},"review_comment":{"href":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/pulls/4/commits"},"statuses":{"href":"https://api.github.com/repos/crossbeam-rs/crossbeam-epoch/statuses/5e47c9d9859c0c3134cd3e65824344646f4c7b5b"}}}}
{"actor":{"display_login":"Vtec234"}}