{"action":"created","issue":{"url":"https://api.github.com/repos/GraphQLSwift/GraphQL/issues/13","repository_url":"https://api.github.com/repos/GraphQLSwift/GraphQL","labels_url":"https://api.github.com/repos/GraphQLSwift/GraphQL/issues/13/labels{/name}","comments_url":"https://api.github.com/repos/GraphQLSwift/GraphQL/issues/13/comments","events_url":"https://api.github.com/repos/GraphQLSwift/GraphQL/issues/13/events","html_url":"https://github.com/GraphQLSwift/GraphQL/pull/13","id":232712161,"number":13,"title":"Use Dispatch to implement concurrent field resolution","user":{"login":"williambailey","id":1120702,"avatar_url":"https://avatars2.githubusercontent.com/u/1120702?v=3","gravatar_id":"","url":"https://api.github.com/users/williambailey","html_url":"https://github.com/williambailey","followers_url":"https://api.github.com/users/williambailey/followers","following_url":"https://api.github.com/users/williambailey/following{/other_user}","gists_url":"https://api.github.com/users/williambailey/gists{/gist_id}","starred_url":"https://api.github.com/users/williambailey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/williambailey/subscriptions","organizations_url":"https://api.github.com/users/williambailey/orgs","repos_url":"https://api.github.com/users/williambailey/repos","events_url":"https://api.github.com/users/williambailey/events{/privacy}","received_events_url":"https://api.github.com/users/williambailey/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2017-05-31T22:12:21Z","updated_at":"2017-06-08T14:45:08Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/GraphQLSwift/GraphQL/pulls/13","html_url":"https://github.com/GraphQLSwift/GraphQL/pull/13","diff_url":"https://github.com/GraphQLSwift/GraphQL/pull/13.diff","patch_url":"https://github.com/GraphQLSwift/GraphQL/pull/13.patch"},"body":"Use `DispatchQueue` and `DispatchGroup` to provide a simple implementation for concurrent field resolution. Some advantages to having a simple implementation is that we don't introduce any API changes and we can free the field resolvers from having to worry about things like promises and callback blocks at this point in time.\r\n\r\nUnit tests have been added to verify the different behaviour between serial resolution (mutations) and concurrent resolution (queries). Not sure if using `usleep` is the best way to test concurrency and the `accuracy` value was pulled from thin air but it seems to work for me. I suppose CI might have different ideas."},"comment":{"url":"https://api.github.com/repos/GraphQLSwift/GraphQL/issues/comments/307125727","html_url":"https://github.com/GraphQLSwift/GraphQL/pull/13#issuecomment-307125727","issue_url":"https://api.github.com/repos/GraphQLSwift/GraphQL/issues/13","id":307125727,"user":{"login":"paulofaria","id":5126193,"avatar_url":"https://avatars1.githubusercontent.com/u/5126193?v=3","gravatar_id":"","url":"https://api.github.com/users/paulofaria","html_url":"https://github.com/paulofaria","followers_url":"https://api.github.com/users/paulofaria/followers","following_url":"https://api.github.com/users/paulofaria/following{/other_user}","gists_url":"https://api.github.com/users/paulofaria/gists{/gist_id}","starred_url":"https://api.github.com/users/paulofaria/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulofaria/subscriptions","organizations_url":"https://api.github.com/users/paulofaria/orgs","repos_url":"https://api.github.com/users/paulofaria/repos","events_url":"https://api.github.com/users/paulofaria/events{/privacy}","received_events_url":"https://api.github.com/users/paulofaria/received_events","type":"User","site_admin":false},"created_at":"2017-06-08T14:45:08Z","updated_at":"2017-06-08T14:45:08Z","body":"Haha I guess you read my mind."}}
{"actor":{"display_login":"paulofaria"}}