{"action":"created","issue":{"url":"https://api.github.com/repos/grpc/grpc/issues/2713","labels_url":"https://api.github.com/repos/grpc/grpc/issues/2713/labels{/name}","comments_url":"https://api.github.com/repos/grpc/grpc/issues/2713/comments","events_url":"https://api.github.com/repos/grpc/grpc/issues/2713/events","html_url":"https://github.com/grpc/grpc/pull/2713","id":98047996,"number":2713,"title":"Allow specific pollers to be woken","user":{"login":"ctiller","id":10120821,"avatar_url":"https://avatars.githubusercontent.com/u/10120821?v=3","gravatar_id":"","url":"https://api.github.com/users/ctiller","html_url":"https://github.com/ctiller","followers_url":"https://api.github.com/users/ctiller/followers","following_url":"https://api.github.com/users/ctiller/following{/other_user}","gists_url":"https://api.github.com/users/ctiller/gists{/gist_id}","starred_url":"https://api.github.com/users/ctiller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ctiller/subscriptions","organizations_url":"https://api.github.com/users/ctiller/orgs","repos_url":"https://api.github.com/users/ctiller/repos","events_url":"https://api.github.com/users/ctiller/events{/privacy}","received_events_url":"https://api.github.com/users/ctiller/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/grpc/grpc/labels/cla:%20no","name":"cla: no","color":"e11d21"},{"url":"https://api.github.com/repos/grpc/grpc/labels/P0","name":"P0","color":"ff0000"}],"state":"open","locked":false,"assignee":{"login":"vjpai","id":8864912,"avatar_url":"https://avatars.githubusercontent.com/u/8864912?v=3","gravatar_id":"","url":"https://api.github.com/users/vjpai","html_url":"https://github.com/vjpai","followers_url":"https://api.github.com/users/vjpai/followers","following_url":"https://api.github.com/users/vjpai/following{/other_user}","gists_url":"https://api.github.com/users/vjpai/gists{/gist_id}","starred_url":"https://api.github.com/users/vjpai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vjpai/subscriptions","organizations_url":"https://api.github.com/users/vjpai/orgs","repos_url":"https://api.github.com/users/vjpai/repos","events_url":"https://api.github.com/users/vjpai/events{/privacy}","received_events_url":"https://api.github.com/users/vjpai/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/grpc/grpc/milestones/25","html_url":"https://github.com/grpc/grpc/milestones/Beta","labels_url":"https://api.github.com/repos/grpc/grpc/milestones/25/labels","id":1134869,"number":25,"title":"Beta","description":"","creator":{"login":"ctiller","id":10120821,"avatar_url":"https://avatars.githubusercontent.com/u/10120821?v=3","gravatar_id":"","url":"https://api.github.com/users/ctiller","html_url":"https://github.com/ctiller","followers_url":"https://api.github.com/users/ctiller/followers","following_url":"https://api.github.com/users/ctiller/following{/other_user}","gists_url":"https://api.github.com/users/ctiller/gists{/gist_id}","starred_url":"https://api.github.com/users/ctiller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ctiller/subscriptions","organizations_url":"https://api.github.com/users/ctiller/orgs","repos_url":"https://api.github.com/users/ctiller/repos","events_url":"https://api.github.com/users/ctiller/events{/privacy}","received_events_url":"https://api.github.com/users/ctiller/received_events","type":"User","site_admin":false},"open_issues":199,"closed_issues":234,"state":"open","created_at":"2015-05-26T22:29:20Z","updated_at":"2015-08-05T03:26:00Z","due_on":"2015-07-31T07:00:00Z","closed_at":null},"comments":8,"created_at":"2015-07-29T23:07:11Z","updated_at":"2015-08-05T13:53:24Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/grpc/grpc/pulls/2713","html_url":"https://github.com/grpc/grpc/pull/2713","diff_url":"https://github.com/grpc/grpc/pull/2713.diff","patch_url":"https://github.com/grpc/grpc/pull/2713.patch"},"body":"Currently, if two threads call grpc_completion_queue_pluck on the same completion queue for different tags, there is a 50% chance that we deliver the completion wakeup to the wrong poller - forcing the correct poller to wait until its polling times out before it can return an event up to the application.\r\n\r\nThis change tweaks our polling interfaces so that we can indeed wake a specific poller.\r\n\r\nNothing has been performance tuned yet. It's definitely sub-optimal in a number of places. Wakeup file-descriptors should be recycled. We should have a path that avoids calling poll() followed by epoll(). We can probably live without it right at the second though.\r\n\r\nThis code will fail on Windows at least (I'll do that port when I'm in the office and have a Windows\r\nmachine).\r\n\r\nThis builds upon #2731. The major refactoring is in 5ddbb9d."},"comment":{"url":"https://api.github.com/repos/grpc/grpc/issues/comments/128002921","html_url":"https://github.com/grpc/grpc/pull/2713#issuecomment-128002921","issue_url":"https://api.github.com/repos/grpc/grpc/issues/2713","id":128002921,"user":{"login":"ctiller","id":10120821,"avatar_url":"https://avatars.githubusercontent.com/u/10120821?v=3","gravatar_id":"","url":"https://api.github.com/users/ctiller","html_url":"https://github.com/ctiller","followers_url":"https://api.github.com/users/ctiller/followers","following_url":"https://api.github.com/users/ctiller/following{/other_user}","gists_url":"https://api.github.com/users/ctiller/gists{/gist_id}","starred_url":"https://api.github.com/users/ctiller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ctiller/subscriptions","organizations_url":"https://api.github.com/users/ctiller/orgs","repos_url":"https://api.github.com/users/ctiller/repos","events_url":"https://api.github.com/users/ctiller/events{/privacy}","received_events_url":"https://api.github.com/users/ctiller/received_events","type":"User","site_admin":false},"created_at":"2015-08-05T13:53:24Z","updated_at":"2015-08-05T13:53:24Z","body":"This is way green enough. Hoping to see a merge shortly."}}