{"action":"created","issue":{"url":"https://api.github.com/repos/getlantern/lantern/issues/3360","labels_url":"https://api.github.com/repos/getlantern/lantern/issues/3360/labels{/name}","comments_url":"https://api.github.com/repos/getlantern/lantern/issues/3360/comments","events_url":"https://api.github.com/repos/getlantern/lantern/issues/3360/events","html_url":"https://github.com/getlantern/lantern/pull/3360","id":122880712,"number":3360,"title":"rewrite detour","user":{"login":"fffw","id":10410437,"avatar_url":"https://avatars.githubusercontent.com/u/10410437?v=3","gravatar_id":"","url":"https://api.github.com/users/fffw","html_url":"https://github.com/fffw","followers_url":"https://api.github.com/users/fffw/followers","following_url":"https://api.github.com/users/fffw/following{/other_user}","gists_url":"https://api.github.com/users/fffw/gists{/gist_id}","starred_url":"https://api.github.com/users/fffw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fffw/subscriptions","organizations_url":"https://api.github.com/users/fffw/orgs","repos_url":"https://api.github.com/users/fffw/repos","events_url":"https://api.github.com/users/fffw/events{/privacy}","received_events_url":"https://api.github.com/users/fffw/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"oxtoacart","id":5000654,"avatar_url":"https://avatars.githubusercontent.com/u/5000654?v=3","gravatar_id":"","url":"https://api.github.com/users/oxtoacart","html_url":"https://github.com/oxtoacart","followers_url":"https://api.github.com/users/oxtoacart/followers","following_url":"https://api.github.com/users/oxtoacart/following{/other_user}","gists_url":"https://api.github.com/users/oxtoacart/gists{/gist_id}","starred_url":"https://api.github.com/users/oxtoacart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oxtoacart/subscriptions","organizations_url":"https://api.github.com/users/oxtoacart/orgs","repos_url":"https://api.github.com/users/oxtoacart/repos","events_url":"https://api.github.com/users/oxtoacart/events{/privacy}","received_events_url":"https://api.github.com/users/oxtoacart/received_events","type":"User","site_admin":false},"milestone":null,"comments":5,"created_at":"2015-12-18T05:14:29Z","updated_at":"2016-02-01T22:53:41Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/getlantern/lantern/pulls/3360","html_url":"https://github.com/getlantern/lantern/pull/3360","diff_url":"https://github.com/getlantern/lantern/pull/3360.diff","patch_url":"https://github.com/getlantern/lantern/pull/3360.patch"},"body":"Resolves #3296, resolves #3343, resolves #3325 \r\n\r\nIt's a total rewrite. `ioLoop` sets a barrier for asynchronous events and spawn goroutines to handle them immediately. pipelining and merging are used to handle dialing and read operations.\r\n\r\nIt seems more fluent than current valencia code and 2.0.10 from my own test. It doesn't leave any CLOSE_WAIT connections. goroutine number doesn't increase either.\r\n\r\nTo inspect goroutines, run `./lantern_darwin_amd64 -pprofaddr=localhost:3000` and access `http://127.0.0.1:3000/debug/pprof/` from browser.\r\n\r\nTo have a sense of memory allocation, `go tool pprof -top http://127.0.0.1:3000/debug/pprof/heap`"},"comment":{"url":"https://api.github.com/repos/getlantern/lantern/issues/comments/178240615","html_url":"https://github.com/getlantern/lantern/pull/3360#issuecomment-178240615","issue_url":"https://api.github.com/repos/getlantern/lantern/issues/3360","id":178240615,"user":{"login":"oxtoacart","id":5000654,"avatar_url":"https://avatars.githubusercontent.com/u/5000654?v=3","gravatar_id":"","url":"https://api.github.com/users/oxtoacart","html_url":"https://github.com/oxtoacart","followers_url":"https://api.github.com/users/oxtoacart/followers","following_url":"https://api.github.com/users/oxtoacart/following{/other_user}","gists_url":"https://api.github.com/users/oxtoacart/gists{/gist_id}","starred_url":"https://api.github.com/users/oxtoacart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oxtoacart/subscriptions","organizations_url":"https://api.github.com/users/oxtoacart/orgs","repos_url":"https://api.github.com/users/oxtoacart/repos","events_url":"https://api.github.com/users/oxtoacart/events{/privacy}","received_events_url":"https://api.github.com/users/oxtoacart/received_events","type":"User","site_admin":false},"created_at":"2016-02-01T22:53:41Z","updated_at":"2016-02-01T22:53:41Z","body":"@fffw I'm planning to review this week."}}