{"action":"created","issue":{"url":"https://api.github.com/repos/apache/thrift/issues/762","labels_url":"https://api.github.com/repos/apache/thrift/issues/762/labels{/name}","comments_url":"https://api.github.com/repos/apache/thrift/issues/762/comments","events_url":"https://api.github.com/repos/apache/thrift/issues/762/events","html_url":"https://github.com/apache/thrift/pull/762","id":123938047,"number":762,"title":"THRIFT-3510 Add HttpTaskAsyncHandler implementation","user":{"login":"adamconnelly","id":1884632,"avatar_url":"https://avatars.githubusercontent.com/u/1884632?v=3","gravatar_id":"","url":"https://api.github.com/users/adamconnelly","html_url":"https://github.com/adamconnelly","followers_url":"https://api.github.com/users/adamconnelly/followers","following_url":"https://api.github.com/users/adamconnelly/following{/other_user}","gists_url":"https://api.github.com/users/adamconnelly/gists{/gist_id}","starred_url":"https://api.github.com/users/adamconnelly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamconnelly/subscriptions","organizations_url":"https://api.github.com/users/adamconnelly/orgs","repos_url":"https://api.github.com/users/adamconnelly/repos","events_url":"https://api.github.com/users/adamconnelly/events{/privacy}","received_events_url":"https://api.github.com/users/adamconnelly/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-12-26T16:36:12Z","updated_at":"2016-01-09T00:48:31Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apache/thrift/pulls/762","html_url":"https://github.com/apache/thrift/pull/762","diff_url":"https://github.com/apache/thrift/pull/762.diff","patch_url":"https://github.com/apache/thrift/pull/762.patch"},"body":"The THttpHandler doesn't support an async pipeline. This means that it's difficult for service implementations to make async calls. I've added an implementation of HttpTaskAsyncHandler, so you can write services using async calls.\r\n\r\nAdditionally, if you generate the C# classes with the current async support, you get a single interface with both sync and async methods. This doesn't really make sense on the server side since if you implement a service you end up leaving all the async method unimplemented. I've added a new option to the compiler that allows you to generate separate async and sync interfaces: separateasync.\r\n\r\nThis generates code like the following:\r\n\r\n```csharp\r\npublic interface ISync\r\n{\r\n    void DoSomething();\r\n}\r\n\r\npublic interface IAsync\r\n{\r\n    Task DoSomethingAsync();\r\n}\r\n\r\npublic interface Iface : ISync, IAsync\r\n{\r\n}\r\n```\r\n\r\nI tried to write the code for the generator in such a way that I didn't alter the existing functionality. I've probably created a load of duplication as part of that, but that was just because I'm not familiar with the code."},"comment":{"url":"https://api.github.com/repos/apache/thrift/issues/comments/170170922","html_url":"https://github.com/apache/thrift/pull/762#issuecomment-170170922","issue_url":"https://api.github.com/repos/apache/thrift/issues/762","id":170170922,"user":{"login":"adamconnelly","id":1884632,"avatar_url":"https://avatars.githubusercontent.com/u/1884632?v=3","gravatar_id":"","url":"https://api.github.com/users/adamconnelly","html_url":"https://github.com/adamconnelly","followers_url":"https://api.github.com/users/adamconnelly/followers","following_url":"https://api.github.com/users/adamconnelly/following{/other_user}","gists_url":"https://api.github.com/users/adamconnelly/gists{/gist_id}","starred_url":"https://api.github.com/users/adamconnelly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamconnelly/subscriptions","organizations_url":"https://api.github.com/users/adamconnelly/orgs","repos_url":"https://api.github.com/users/adamconnelly/repos","events_url":"https://api.github.com/users/adamconnelly/events{/privacy}","received_events_url":"https://api.github.com/users/adamconnelly/received_events","type":"User","site_admin":false},"created_at":"2016-01-09T00:48:31Z","updated_at":"2016-01-09T00:48:31Z","body":"Cheers for the feedback - I'll try to sort all tha . I'm not quite sure what the minimum version of mono is, but I'll find out. \r\n\r\nI added the new project to test the web stuf . Do you think there's actually any point to it? Just asking because i'm not mega familiar with how you guys do your testin . \r\n\r\nThanks for the feedbac . "}}