{"action":"created","issue":{"url":"https://api.github.com/repos/apple/swift/issues/3923","repository_url":"https://api.github.com/repos/apple/swift","labels_url":"https://api.github.com/repos/apple/swift/issues/3923/labels{/name}","comments_url":"https://api.github.com/repos/apple/swift/issues/3923/comments","events_url":"https://api.github.com/repos/apple/swift/issues/3923/events","html_url":"https://github.com/apple/swift/pull/3923","id":168772250,"number":3923,"title":"Fix Dispatch API's handling of block parameters","user":{"login":"kballard","id":714,"avatar_url":"https://avatars.githubusercontent.com/u/714?v=3","gravatar_id":"","url":"https://api.github.com/users/kballard","html_url":"https://github.com/kballard","followers_url":"https://api.github.com/users/kballard/followers","following_url":"https://api.github.com/users/kballard/following{/other_user}","gists_url":"https://api.github.com/users/kballard/gists{/gist_id}","starred_url":"https://api.github.com/users/kballard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kballard/subscriptions","organizations_url":"https://api.github.com/users/kballard/orgs","repos_url":"https://api.github.com/users/kballard/repos","events_url":"https://api.github.com/users/kballard/events{/privacy}","received_events_url":"https://api.github.com/users/kballard/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-08-02T00:22:34Z","updated_at":"2016-08-02T01:14:45Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apple/swift/pulls/3923","html_url":"https://github.com/apple/swift/pull/3923","diff_url":"https://github.com/apple/swift/pull/3923.diff","patch_url":"https://github.com/apple/swift/pull/3923.patch"},"body":"#### What's in this pull request?\r\n\r\nThis fixes the Dispatch API's handling of block parameters, so any block parameter that came in as `@convention(block)` (both parameters to public APIs as well as blocks created internal to the methods) is properly preserved as `@convention(block)` throughout. This makes barrier blocks work again (as well as the rest of the flags).\r\n\r\nThis also adds a fast path for `dispatch.async(flags: .barrier, execute: ...)` so it doesn't have the overhead of creating a `DispatchWorkItem`.\r\n\r\n#### Resolved bug numbers: ([SR-2246](https://bugs.swift.org/browse/SR-2246) and [SR-2248](https://bugs.swift.org/browse/SR-2248))\r\n\r\n* * * *\r\n\r\n<!-- This selection should only be completed by Swift admin -->\r\nBefore merging this pull request to apple/swift repository:\r\n- [ ] Test pull request on Swift continuous integration.\r\n\r\n<details>\r\n  <summary>Triggering Swift CI</summary>\r\n\r\nThe swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:\r\n\r\n**Smoke Testing**\r\n\r\n        Platform     | Comment\r\n        ------------ | -------------\r\n        All supported platforms     | @swift-ci Please smoke test\r\n        All supported platforms     | @swift-ci Please smoke test and merge\r\n        OS X platform               | @swift-ci Please smoke test OS X platform\r\n        Linux platform              | @swift-ci Please smoke test Linux platform\r\n\r\nA smoke test on macOS does the following:\r\n\r\n1. Builds the compiler incrementally.\r\n2. Builds the standard library only for macOS. Simulator standard libraries and\r\n   device standard libraries are not built.\r\n3. lldb is not built.\r\n4. The test and validation-test targets are run only for macOS. The optimized\r\n   version of these tests are not run.\r\n\r\nA smoke test on Linux does the following:\r\n\r\n1. Builds the compiler incrementally.\r\n2. Builds the standard library incrementally.\r\n3. lldb is built incrementally.\r\n4. The swift test and validation-test targets are run. The optimized version of these\r\n   tests are not run.\r\n5. lldb is tested.\r\n\r\n**Validation Testing**\r\n\r\n        Platform     | Comment\r\n        ------------ | -------------\r\n        All supported platforms     | @swift-ci Please test\r\n        All supported platforms     | @swift-ci Please test and merge\r\n        OS X platform               | @swift-ci Please test OS X platform\r\n        OS X platform               | @swift-ci Please benchmark\r\n        Linux platform              | @swift-ci Please test Linux platform\r\n\r\n\r\n**Lint Testing**\r\n\r\n        Language     | Comment\r\n        ------------ | -------------\r\n        Python       | @swift-ci Please Python lint\r\n\r\nNote: Only members of the Apple organization can trigger swift-ci.\r\n</details>\r\n<!-- Thank you for your contribution to Swift! -->"},"comment":{"url":"https://api.github.com/repos/apple/swift/issues/comments/236762621","html_url":"https://github.com/apple/swift/pull/3923#issuecomment-236762621","issue_url":"https://api.github.com/repos/apple/swift/issues/3923","id":236762621,"user":{"login":"gribozavr","id":1120569,"avatar_url":"https://avatars.githubusercontent.com/u/1120569?v=3","gravatar_id":"","url":"https://api.github.com/users/gribozavr","html_url":"https://github.com/gribozavr","followers_url":"https://api.github.com/users/gribozavr/followers","following_url":"https://api.github.com/users/gribozavr/following{/other_user}","gists_url":"https://api.github.com/users/gribozavr/gists{/gist_id}","starred_url":"https://api.github.com/users/gribozavr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gribozavr/subscriptions","organizations_url":"https://api.github.com/users/gribozavr/orgs","repos_url":"https://api.github.com/users/gribozavr/repos","events_url":"https://api.github.com/users/gribozavr/events{/privacy}","received_events_url":"https://api.github.com/users/gribozavr/received_events","type":"User","site_admin":false},"created_at":"2016-08-02T01:14:45Z","updated_at":"2016-08-02T01:14:45Z","body":"@swift-ci Please test"}}
{"actor":{"display_login":"gribozavr"}}