{"action":"created","issue":{"url":"https://api.github.com/repos/netty/netty/issues/3897","repository_url":"https://api.github.com/repos/netty/netty","labels_url":"https://api.github.com/repos/netty/netty/issues/3897/labels{/name}","comments_url":"https://api.github.com/repos/netty/netty/issues/3897/comments","events_url":"https://api.github.com/repos/netty/netty/issues/3897/events","html_url":"https://github.com/netty/netty/issues/3897","id":89215743,"number":3897,"title":"Please make EpollSocketChannel non final","user":{"login":"purplefox","id":701906,"avatar_url":"https://avatars3.githubusercontent.com/u/701906?v=4","gravatar_id":"","url":"https://api.github.com/users/purplefox","html_url":"https://github.com/purplefox","followers_url":"https://api.github.com/users/purplefox/followers","following_url":"https://api.github.com/users/purplefox/following{/other_user}","gists_url":"https://api.github.com/users/purplefox/gists{/gist_id}","starred_url":"https://api.github.com/users/purplefox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/purplefox/subscriptions","organizations_url":"https://api.github.com/users/purplefox/orgs","repos_url":"https://api.github.com/users/purplefox/repos","events_url":"https://api.github.com/users/purplefox/events{/privacy}","received_events_url":"https://api.github.com/users/purplefox/received_events","type":"User","site_admin":false},"labels":[{"id":185729,"url":"https://api.github.com/repos/netty/netty/labels/improvement","name":"improvement","color":"0052cc","default":false}],"state":"open","locked":false,"assignee":{"login":"normanmaurer","id":439362,"avatar_url":"https://avatars3.githubusercontent.com/u/439362?v=4","gravatar_id":"","url":"https://api.github.com/users/normanmaurer","html_url":"https://github.com/normanmaurer","followers_url":"https://api.github.com/users/normanmaurer/followers","following_url":"https://api.github.com/users/normanmaurer/following{/other_user}","gists_url":"https://api.github.com/users/normanmaurer/gists{/gist_id}","starred_url":"https://api.github.com/users/normanmaurer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/normanmaurer/subscriptions","organizations_url":"https://api.github.com/users/normanmaurer/orgs","repos_url":"https://api.github.com/users/normanmaurer/repos","events_url":"https://api.github.com/users/normanmaurer/events{/privacy}","received_events_url":"https://api.github.com/users/normanmaurer/received_events","type":"User","site_admin":false},"assignees":[{"login":"normanmaurer","id":439362,"avatar_url":"https://avatars3.githubusercontent.com/u/439362?v=4","gravatar_id":"","url":"https://api.github.com/users/normanmaurer","html_url":"https://github.com/normanmaurer","followers_url":"https://api.github.com/users/normanmaurer/followers","following_url":"https://api.github.com/users/normanmaurer/following{/other_user}","gists_url":"https://api.github.com/users/normanmaurer/gists{/gist_id}","starred_url":"https://api.github.com/users/normanmaurer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/normanmaurer/subscriptions","organizations_url":"https://api.github.com/users/normanmaurer/orgs","repos_url":"https://api.github.com/users/normanmaurer/repos","events_url":"https://api.github.com/users/normanmaurer/events{/privacy}","received_events_url":"https://api.github.com/users/normanmaurer/received_events","type":"User","site_admin":false}],"milestone":null,"comments":7,"created_at":"2015-06-18T06:56:41Z","updated_at":"2017-08-29T20:51:01Z","closed_at":null,"author_association":"NONE","body":"Hi folks,\n\nIn Vert.x 3 HTTP each Netty channel is associated with our Vert.x ServerConnection object which represents our HTTP connection.\n\nAs an optimisation to avoid looking up the ServerConnection each time a channelRead is fired for the channel, we store a reference to the connection on a subclass of the NioSocketChannel object:\n\nhttps://github.com/eclipse/vert.x/blob/perf5/src/main/java/io/vertx/core/http/impl/VertxNioSocketChannel.java#L34\n\nAnd we provide our own factories (both server and client) to create these:\n\nhttps://github.com/eclipse/vert.x/blob/perf5/src/main/java/io/vertx/core/http/impl/VertxNioSocketChannelFactory.java\n\nhttps://github.com/eclipse/vert.x/blob/perf5/src/main/java/io/vertx/core/http/impl/VertxNioSocketChannelFactory.java\n\nI would like to use this technique for the epoll transport too, but the class EpollSocketChannel is final so this is not possible.\n\nCould you make the class non final with public constructor so we can support this technique?\n\nOr even better: - perhaps you could provide a generic way to set/get user data on a channel object, e.g.:\n\n<T> T getUserReference();\n\nvoid setUserReference(Object ref)\n"},"comment":{"url":"https://api.github.com/repos/netty/netty/issues/comments/325800082","html_url":"https://github.com/netty/netty/issues/3897#issuecomment-325800082","issue_url":"https://api.github.com/repos/netty/netty/issues/3897","id":325800082,"user":{"login":"takeseem","id":4768523,"avatar_url":"https://avatars3.githubusercontent.com/u/4768523?v=4","gravatar_id":"","url":"https://api.github.com/users/takeseem","html_url":"https://github.com/takeseem","followers_url":"https://api.github.com/users/takeseem/followers","following_url":"https://api.github.com/users/takeseem/following{/other_user}","gists_url":"https://api.github.com/users/takeseem/gists{/gist_id}","starred_url":"https://api.github.com/users/takeseem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/takeseem/subscriptions","organizations_url":"https://api.github.com/users/takeseem/orgs","repos_url":"https://api.github.com/users/takeseem/repos","events_url":"https://api.github.com/users/takeseem/events{/privacy}","received_events_url":"https://api.github.com/users/takeseem/received_events","type":"User","site_admin":false},"created_at":"2017-08-29T20:51:01Z","updated_at":"2017-08-29T20:51:01Z","author_association":"NONE","body":"waiting epoll support in vert.x :)"}}
{"actor":{"display_login":"takeseem"}}