{"action":"created","issue":{"url":"https://api.github.com/repos/tumblr/colossus/issues/214","labels_url":"https://api.github.com/repos/tumblr/colossus/issues/214/labels{/name}","comments_url":"https://api.github.com/repos/tumblr/colossus/issues/214/comments","events_url":"https://api.github.com/repos/tumblr/colossus/issues/214/events","html_url":"https://github.com/tumblr/colossus/pull/214","id":87906696,"number":214,"title":"Removing broken Executor from testkit, new TestExecutor (that works)","user":{"login":"DanSimon","id":287961,"avatar_url":"https://avatars.githubusercontent.com/u/287961?v=3","gravatar_id":"","url":"https://api.github.com/users/DanSimon","html_url":"https://github.com/DanSimon","followers_url":"https://api.github.com/users/DanSimon/followers","following_url":"https://api.github.com/users/DanSimon/following{/other_user}","gists_url":"https://api.github.com/users/DanSimon/gists{/gist_id}","starred_url":"https://api.github.com/users/DanSimon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DanSimon/subscriptions","organizations_url":"https://api.github.com/users/DanSimon/orgs","repos_url":"https://api.github.com/users/DanSimon/repos","events_url":"https://api.github.com/users/DanSimon/events{/privacy}","received_events_url":"https://api.github.com/users/DanSimon/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/tumblr/colossus/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/tumblr/colossus/labels/project:testkit","name":"project:testkit","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/tumblr/colossus/milestones/19","html_url":"https://github.com/tumblr/colossus/milestones/0.6.4","labels_url":"https://api.github.com/repos/tumblr/colossus/milestones/19/labels","id":1147693,"number":19,"title":"0.6.4","description":"","creator":{"login":"DanSimon","id":287961,"avatar_url":"https://avatars.githubusercontent.com/u/287961?v=3","gravatar_id":"","url":"https://api.github.com/users/DanSimon","html_url":"https://github.com/DanSimon","followers_url":"https://api.github.com/users/DanSimon/followers","following_url":"https://api.github.com/users/DanSimon/following{/other_user}","gists_url":"https://api.github.com/users/DanSimon/gists{/gist_id}","starred_url":"https://api.github.com/users/DanSimon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DanSimon/subscriptions","organizations_url":"https://api.github.com/users/DanSimon/orgs","repos_url":"https://api.github.com/users/DanSimon/repos","events_url":"https://api.github.com/users/DanSimon/events{/privacy}","received_events_url":"https://api.github.com/users/DanSimon/received_events","type":"User","site_admin":false},"open_issues":6,"closed_issues":1,"state":"open","created_at":"2015-06-03T15:44:48Z","updated_at":"2015-06-15T02:51:48Z","due_on":"2015-06-19T04:00:00Z","closed_at":null},"comments":3,"created_at":"2015-06-13T02:12:58Z","updated_at":"2015-06-15T13:59:27Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/tumblr/colossus/pulls/214","html_url":"https://github.com/tumblr/colossus/pull/214","diff_url":"https://github.com/tumblr/colossus/pull/214.diff","patch_url":"https://github.com/tumblr/colossus/pull/214.patch"},"body":"So after some careful examination, it's clear that the calling-thread callback executor did not properly work.  Furthermore, the Callback Matchers do not correctly handle Callbacks that work with Futures.\r\n\r\nGoing forward, the new `CallbackAwait` should be the only method to extract the value from a Callback in tests.  I've kept the Callback Matchers for now for backwards compatibility (and they do work with vanilla Callbacks), but i think we'll have to remove them.\r\n\r\nBasically it works by spinning up an actual actor in a PinnedDispatcher that executes the callbacks and acts as the `CallbackExecutor`.  This ensures proper behavior when a Callback \"jumps\" out of thread, executes as a Future, and jumps back in thread via the Executor."},"comment":{"url":"https://api.github.com/repos/tumblr/colossus/issues/comments/112080286","html_url":"https://github.com/tumblr/colossus/pull/214#issuecomment-112080286","issue_url":"https://api.github.com/repos/tumblr/colossus/issues/214","id":112080286,"user":{"login":"DanSimon","id":287961,"avatar_url":"https://avatars.githubusercontent.com/u/287961?v=3","gravatar_id":"","url":"https://api.github.com/users/DanSimon","html_url":"https://github.com/DanSimon","followers_url":"https://api.github.com/users/DanSimon/followers","following_url":"https://api.github.com/users/DanSimon/following{/other_user}","gists_url":"https://api.github.com/users/DanSimon/gists{/gist_id}","starred_url":"https://api.github.com/users/DanSimon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DanSimon/subscriptions","organizations_url":"https://api.github.com/users/DanSimon/orgs","repos_url":"https://api.github.com/users/DanSimon/repos","events_url":"https://api.github.com/users/DanSimon/events{/privacy}","received_events_url":"https://api.github.com/users/DanSimon/received_events","type":"User","site_admin":false},"created_at":"2015-06-15T13:59:27Z","updated_at":"2015-06-15T13:59:27Z","body":"Re the matcher: yeah I think that's what we should do.  I didn't want to touch it with this PR since I wasn't sure it wouldn't change the semantics of how it works, but we should do that in another PR."}}