{"action":"created","comment":{"url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/comments/24296273","id":24296273,"diff_hunk":"@@ -521,21 +458,71 @@ public func concat<T, E>(producer: SignalProducer<SignalProducer<T, E>, E>) -> S\n \t}\n }\n \n-private struct ConcatState<T, E: ErrorType> {\n-\t/// Whether the signal-of-signals has completed yet.\n-\tvar selfCompleted = false\n-\t\n+private final class ConcatState<T, E: ErrorType> {\n+\t/// The observer of a started `concat` producer.\n+\tlet observer: Signal<T, E>.Observer\n+\n+\t/// The top level disposable of a started `concat` producer.\n+\tlet disposable: CompositeDisposable\n+\n \t/// The signals waiting to be started.\n \tvar queuedSignalProducers: [SignalProducer<T, E>] = []\n-\t\n-\t/// Indicates whether the most recently processed inner signal has completed yet.\n-\tvar latestSignalCompleted: Bool = true\n-}\n \n-/// The Z combinator, which we use to make a recursive closure that we can\n-/// nil out to avoid a retain cycle.\n-private func Z<T, U>(f: (T -> U, T) -> U)(x: T) -> U {\n-\treturn f(Z(f), x)\n+\tinit(observer: Signal<T, E>.Observer, disposable: CompositeDisposable) {\n+\t\tself.observer = observer\n+\t\tself.disposable = disposable\n+\t}\n+\n+\tfunc enqueueSignalProducer(producer: SignalProducer<T, E>) {\n+\t\tvar shouldStart = true\n+\n+\t\tlock()\n+\t\t// An empty queue means the concat is idle, ready & waiting to start the\n+\t\t// next producer given.\n+\t\tshouldStart = self.queuedSignalProducers.isEmpty\n+\t\tself.queuedSignalProducers.append(producer)\n+\t\tunlock()\n+\n+\t\tif shouldStart {\n+\t\t\tstartNextSignalProducer(producer)\n+\t\t}\n+\t}\n+\n+\tfunc dequeueSignalProducer() -> SignalProducer<T, E>? {\n+\t\tvar nextSignalProducer: SignalProducer<T, E>?\n+\n+\t\tlock()\n+\t\t// Active producers are left in the queue until completion. Dequeueing\n+\t\t// only happens when the last active producer has completed, so it can\n+\t\t// be removed from the queue.\n+\t\tself.queuedSignalProducers.removeAtIndex(0)\n+\t\tnextSignalProducer = self.queuedSignalProducers.first\n+\t\tunlock()\n+\n+\t\treturn nextSignalProducer\n+\t}\n+\n+\t/// Subscribes to the given signal producer.\n+\tfunc startNextSignalProducer(signalProducer: SignalProducer<T, E>) {\n+\t\tlet serialDisposable = SerialDisposable()\n+\t\tlet serialDisposableCompositeHandle = disposable.addDisposable(serialDisposable)\n+\n+\t\tserialDisposable.innerDisposable = signalProducer.start(next: { value in","path":"ReactiveCocoa/Swift/SignalProducer.swift","position":159,"original_position":159,"commit_id":"38df632fe029b2a39d5a73e8f8caeb1f49d114f9","original_commit_id":"38df632fe029b2a39d5a73e8f8caeb1f49d114f9","user":{"login":"jspahrsummers","id":432536,"avatar_url":"https://avatars.githubusercontent.com/u/432536?v=3","gravatar_id":"","url":"https://api.github.com/users/jspahrsummers","html_url":"https://github.com/jspahrsummers","followers_url":"https://api.github.com/users/jspahrsummers/followers","following_url":"https://api.github.com/users/jspahrsummers/following{/other_user}","gists_url":"https://api.github.com/users/jspahrsummers/gists{/gist_id}","starred_url":"https://api.github.com/users/jspahrsummers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jspahrsummers/subscriptions","organizations_url":"https://api.github.com/users/jspahrsummers/orgs","repos_url":"https://api.github.com/users/jspahrsummers/repos","events_url":"https://api.github.com/users/jspahrsummers/events{/privacy}","received_events_url":"https://api.github.com/users/jspahrsummers/received_events","type":"User","site_admin":true},"body":"If you use `startWithSignal`, the serial disposable should be unnecessary.","created_at":"2015-02-08T06:32:35Z","updated_at":"2015-02-08T06:32:35Z","html_url":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/1714#discussion_r24296273","pull_request_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/1714","_links":{"self":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/comments/24296273"},"html":{"href":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/1714#discussion_r24296273"},"pull_request":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/1714"}}},"pull_request":{"url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/1714","id":28406689,"html_url":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/1714","diff_url":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/1714.diff","patch_url":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/1714.patch","issue_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/1714","number":1714,"state":"open","locked":false,"title":"Fix, test, and refactor concat()","user":{"login":"kastiglione","id":43429,"avatar_url":"https://avatars.githubusercontent.com/u/43429?v=3","gravatar_id":"","url":"https://api.github.com/users/kastiglione","html_url":"https://github.com/kastiglione","followers_url":"https://api.github.com/users/kastiglione/followers","following_url":"https://api.github.com/users/kastiglione/following{/other_user}","gists_url":"https://api.github.com/users/kastiglione/gists{/gist_id}","starred_url":"https://api.github.com/users/kastiglione/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kastiglione/subscriptions","organizations_url":"https://api.github.com/users/kastiglione/orgs","repos_url":"https://api.github.com/users/kastiglione/repos","events_url":"https://api.github.com/users/kastiglione/events{/privacy}","received_events_url":"https://api.github.com/users/kastiglione/received_events","type":"User","site_admin":false},"body":"This fixes a crash in a `concat()` in cases where a signals completes before following signals are added to the queue. The crash happens while attempting to dequeue from the empty queue. This arose when doing a binary `concat` with the first signal being `empty`, which completes synchronously before the second signal is handled on the outer signal.\n\ncc @andymatuschak ","created_at":"2015-01-31T01:26:10Z","updated_at":"2015-02-08T06:32:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b5a3fd2f6101a4875a094fa634ee0c8a6e91eb24","assignee":{"login":"jspahrsummers","id":432536,"avatar_url":"https://avatars.githubusercontent.com/u/432536?v=3","gravatar_id":"","url":"https://api.github.com/users/jspahrsummers","html_url":"https://github.com/jspahrsummers","followers_url":"https://api.github.com/users/jspahrsummers/followers","following_url":"https://api.github.com/users/jspahrsummers/following{/other_user}","gists_url":"https://api.github.com/users/jspahrsummers/gists{/gist_id}","starred_url":"https://api.github.com/users/jspahrsummers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jspahrsummers/subscriptions","organizations_url":"https://api.github.com/users/jspahrsummers/orgs","repos_url":"https://api.github.com/users/jspahrsummers/repos","events_url":"https://api.github.com/users/jspahrsummers/events{/privacy}","received_events_url":"https://api.github.com/users/jspahrsummers/received_events","type":"User","site_admin":true},"milestone":{"url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/milestones/4","labels_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/milestones/4/labels","id":393809,"number":4,"title":"3.0","description":"Rethinking some of the [bigger underlying concepts in RAC](https://gist.github.com/jspahrsummers/7000136), particularly those inspired by Rx.\r\n\r\nHowever, we need to take backwards compatibility more seriously than we did for 1.x → 2.0, since our long-time users have already gone through that hellish migration, and we've gained even more users since then.","creator":{"login":"jspahrsummers","id":432536,"avatar_url":"https://avatars.githubusercontent.com/u/432536?v=3","gravatar_id":"","url":"https://api.github.com/users/jspahrsummers","html_url":"https://github.com/jspahrsummers","followers_url":"https://api.github.com/users/jspahrsummers/followers","following_url":"https://api.github.com/users/jspahrsummers/following{/other_user}","gists_url":"https://api.github.com/users/jspahrsummers/gists{/gist_id}","starred_url":"https://api.github.com/users/jspahrsummers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jspahrsummers/subscriptions","organizations_url":"https://api.github.com/users/jspahrsummers/orgs","repos_url":"https://api.github.com/users/jspahrsummers/repos","events_url":"https://api.github.com/users/jspahrsummers/events{/privacy}","received_events_url":"https://api.github.com/users/jspahrsummers/received_events","type":"User","site_admin":true},"open_issues":18,"closed_issues":186,"state":"open","created_at":"2013-08-04T02:52:56Z","updated_at":"2015-02-05T19:24:03Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/1714/commits","review_comments_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/1714/comments","review_comment_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/comments/{number}","comments_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/1714/comments","statuses_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/statuses/38df632fe029b2a39d5a73e8f8caeb1f49d114f9","head":{"label":"ReactiveCocoa:concat-nada","ref":"concat-nada","sha":"38df632fe029b2a39d5a73e8f8caeb1f49d114f9","user":{"login":"ReactiveCocoa","id":3422977,"avatar_url":"https://avatars.githubusercontent.com/u/3422977?v=3","gravatar_id":"","url":"https://api.github.com/users/ReactiveCocoa","html_url":"https://github.com/ReactiveCocoa","followers_url":"https://api.github.com/users/ReactiveCocoa/followers","following_url":"https://api.github.com/users/ReactiveCocoa/following{/other_user}","gists_url":"https://api.github.com/users/ReactiveCocoa/gists{/gist_id}","starred_url":"https://api.github.com/users/ReactiveCocoa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReactiveCocoa/subscriptions","organizations_url":"https://api.github.com/users/ReactiveCocoa/orgs","repos_url":"https://api.github.com/users/ReactiveCocoa/repos","events_url":"https://api.github.com/users/ReactiveCocoa/events{/privacy}","received_events_url":"https://api.github.com/users/ReactiveCocoa/received_events","type":"Organization","site_admin":false},"repo":{"id":3606624,"name":"ReactiveCocoa","full_name":"ReactiveCocoa/ReactiveCocoa","owner":{"login":"ReactiveCocoa","id":3422977,"avatar_url":"https://avatars.githubusercontent.com/u/3422977?v=3","gravatar_id":"","url":"https://api.github.com/users/ReactiveCocoa","html_url":"https://github.com/ReactiveCocoa","followers_url":"https://api.github.com/users/ReactiveCocoa/followers","following_url":"https://api.github.com/users/ReactiveCocoa/following{/other_user}","gists_url":"https://api.github.com/users/ReactiveCocoa/gists{/gist_id}","starred_url":"https://api.github.com/users/ReactiveCocoa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReactiveCocoa/subscriptions","organizations_url":"https://api.github.com/users/ReactiveCocoa/orgs","repos_url":"https://api.github.com/users/ReactiveCocoa/repos","events_url":"https://api.github.com/users/ReactiveCocoa/events{/privacy}","received_events_url":"https://api.github.com/users/ReactiveCocoa/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ReactiveCocoa/ReactiveCocoa","description":"A framework for composing and transforming streams of values","fork":false,"url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa","forks_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/forks","keys_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/teams","hooks_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/hooks","issue_events_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/events{/number}","events_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/events","assignees_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/assignees{/user}","branches_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/branches{/branch}","tags_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/tags","blobs_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/statuses/{sha}","languages_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/languages","stargazers_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/stargazers","contributors_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/contributors","subscribers_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/subscribers","subscription_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/subscription","commits_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/comments/{number}","contents_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/contents/{+path}","compare_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/merges","archive_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/downloads","issues_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues{/number}","pulls_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls{/number}","milestones_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/milestones{/number}","notifications_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/labels{/name}","releases_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/releases{/id}","created_at":"2012-03-02T22:11:24Z","updated_at":"2015-02-08T05:45:50Z","pushed_at":"2015-02-06T08:24:07Z","git_url":"git://github.com/ReactiveCocoa/ReactiveCocoa.git","ssh_url":"git@github.com:ReactiveCocoa/ReactiveCocoa.git","clone_url":"https://github.com/ReactiveCocoa/ReactiveCocoa.git","svn_url":"https://github.com/ReactiveCocoa/ReactiveCocoa","homepage":"","size":25301,"stargazers_count":6856,"watchers_count":6856,"language":"Objective-C","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":960,"mirror_url":null,"open_issues_count":81,"forks":960,"open_issues":81,"watchers":6856,"default_branch":"master"}},"base":{"label":"ReactiveCocoa:swift-development","ref":"swift-development","sha":"50243087116837b42d4a0f6c922c9e58bf5c5271","user":{"login":"ReactiveCocoa","id":3422977,"avatar_url":"https://avatars.githubusercontent.com/u/3422977?v=3","gravatar_id":"","url":"https://api.github.com/users/ReactiveCocoa","html_url":"https://github.com/ReactiveCocoa","followers_url":"https://api.github.com/users/ReactiveCocoa/followers","following_url":"https://api.github.com/users/ReactiveCocoa/following{/other_user}","gists_url":"https://api.github.com/users/ReactiveCocoa/gists{/gist_id}","starred_url":"https://api.github.com/users/ReactiveCocoa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReactiveCocoa/subscriptions","organizations_url":"https://api.github.com/users/ReactiveCocoa/orgs","repos_url":"https://api.github.com/users/ReactiveCocoa/repos","events_url":"https://api.github.com/users/ReactiveCocoa/events{/privacy}","received_events_url":"https://api.github.com/users/ReactiveCocoa/received_events","type":"Organization","site_admin":false},"repo":{"id":3606624,"name":"ReactiveCocoa","full_name":"ReactiveCocoa/ReactiveCocoa","owner":{"login":"ReactiveCocoa","id":3422977,"avatar_url":"https://avatars.githubusercontent.com/u/3422977?v=3","gravatar_id":"","url":"https://api.github.com/users/ReactiveCocoa","html_url":"https://github.com/ReactiveCocoa","followers_url":"https://api.github.com/users/ReactiveCocoa/followers","following_url":"https://api.github.com/users/ReactiveCocoa/following{/other_user}","gists_url":"https://api.github.com/users/ReactiveCocoa/gists{/gist_id}","starred_url":"https://api.github.com/users/ReactiveCocoa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReactiveCocoa/subscriptions","organizations_url":"https://api.github.com/users/ReactiveCocoa/orgs","repos_url":"https://api.github.com/users/ReactiveCocoa/repos","events_url":"https://api.github.com/users/ReactiveCocoa/events{/privacy}","received_events_url":"https://api.github.com/users/ReactiveCocoa/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ReactiveCocoa/ReactiveCocoa","description":"A framework for composing and transforming streams of values","fork":false,"url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa","forks_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/forks","keys_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/teams","hooks_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/hooks","issue_events_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/events{/number}","events_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/events","assignees_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/assignees{/user}","branches_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/branches{/branch}","tags_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/tags","blobs_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/statuses/{sha}","languages_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/languages","stargazers_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/stargazers","contributors_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/contributors","subscribers_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/subscribers","subscription_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/subscription","commits_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/comments/{number}","contents_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/contents/{+path}","compare_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/merges","archive_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/downloads","issues_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues{/number}","pulls_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls{/number}","milestones_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/milestones{/number}","notifications_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/labels{/name}","releases_url":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/releases{/id}","created_at":"2012-03-02T22:11:24Z","updated_at":"2015-02-08T05:45:50Z","pushed_at":"2015-02-06T08:24:07Z","git_url":"git://github.com/ReactiveCocoa/ReactiveCocoa.git","ssh_url":"git@github.com:ReactiveCocoa/ReactiveCocoa.git","clone_url":"https://github.com/ReactiveCocoa/ReactiveCocoa.git","svn_url":"https://github.com/ReactiveCocoa/ReactiveCocoa","homepage":"","size":25301,"stargazers_count":6856,"watchers_count":6856,"language":"Objective-C","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":960,"mirror_url":null,"open_issues_count":81,"forks":960,"open_issues":81,"watchers":6856,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/1714"},"html":{"href":"https://github.com/ReactiveCocoa/ReactiveCocoa/pull/1714"},"issue":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/1714"},"comments":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/1714/comments"},"review_comments":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/1714/comments"},"review_comment":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls/1714/commits"},"statuses":{"href":"https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/statuses/38df632fe029b2a39d5a73e8f8caeb1f49d114f9"}}}}