{"action":"created","comment":{"url":"https://api.github.com/repos/ARMmbed/greentea/pulls/comments/120587232","pull_request_review_id":42560631,"id":120587232,"diff_hunk":"@@ -906,7 +906,12 @@ def get_parallel_value(value):\n         # merge partial test reports from different threads to final test report\n         for t in execute_threads:\n             try:\n-                t.join() #blocking\n+                # We can't block forever here since that prevents KeyboardInterrupts\n+                # from being propagated correctly. Therefore, we just join with a\n+                # timeout of 0.1 seconds until the thread isn't alive anymore.\n+                while t.isAlive():\n+                    t.join(0.1)","path":"mbed_greentea/mbed_greentea_cli.py","position":9,"original_position":9,"commit_id":"9eb6021e6f2dbb4f2544aee4bbde43e19be4c682","original_commit_id":"9eb6021e6f2dbb4f2544aee4bbde43e19be4c682","user":{"login":"adbridge","id":11191917,"avatar_url":"https://avatars1.githubusercontent.com/u/11191917?v=3","gravatar_id":"","url":"https://api.github.com/users/adbridge","html_url":"https://github.com/adbridge","followers_url":"https://api.github.com/users/adbridge/followers","following_url":"https://api.github.com/users/adbridge/following{/other_user}","gists_url":"https://api.github.com/users/adbridge/gists{/gist_id}","starred_url":"https://api.github.com/users/adbridge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adbridge/subscriptions","organizations_url":"https://api.github.com/users/adbridge/orgs","repos_url":"https://api.github.com/users/adbridge/repos","events_url":"https://api.github.com/users/adbridge/events{/privacy}","received_events_url":"https://api.github.com/users/adbridge/received_events","type":"User","site_admin":false},"body":"Any particular reason for choosing 0.1 secs ? ","created_at":"2017-06-07T10:19:35Z","updated_at":"2017-06-07T10:19:35Z","html_url":"https://github.com/ARMmbed/greentea/pull/226#discussion_r120587232","pull_request_url":"https://api.github.com/repos/ARMmbed/greentea/pulls/226","_links":{"self":{"href":"https://api.github.com/repos/ARMmbed/greentea/pulls/comments/120587232"},"html":{"href":"https://github.com/ARMmbed/greentea/pull/226#discussion_r120587232"},"pull_request":{"href":"https://api.github.com/repos/ARMmbed/greentea/pulls/226"}}},"pull_request":{"url":"https://api.github.com/repos/ARMmbed/greentea/pulls/226","id":124259315,"html_url":"https://github.com/ARMmbed/greentea/pull/226","diff_url":"https://github.com/ARMmbed/greentea/pull/226.diff","patch_url":"https://github.com/ARMmbed/greentea/pull/226.patch","issue_url":"https://api.github.com/repos/ARMmbed/greentea/issues/226","number":226,"state":"open","locked":false,"title":"Fixing keyboard interrupts on posix OSes","user":{"login":"bridadan","id":3123977,"avatar_url":"https://avatars1.githubusercontent.com/u/3123977?v=3","gravatar_id":"","url":"https://api.github.com/users/bridadan","html_url":"https://github.com/bridadan","followers_url":"https://api.github.com/users/bridadan/followers","following_url":"https://api.github.com/users/bridadan/following{/other_user}","gists_url":"https://api.github.com/users/bridadan/gists{/gist_id}","starred_url":"https://api.github.com/users/bridadan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bridadan/subscriptions","organizations_url":"https://api.github.com/users/bridadan/orgs","repos_url":"https://api.github.com/users/bridadan/repos","events_url":"https://api.github.com/users/bridadan/events{/privacy}","received_events_url":"https://api.github.com/users/bridadan/received_events","type":"User","site_admin":false},"body":"This should fix issue #150. Tested working on Windows 10 and Ubuntu Linux 16.04.\r\n\r\nThe underlying issue was that a blocking call to `join` for the worker threads was stopping `KeyboardInterrupt` exceptions from being raised to the exception handler here: https://github.com/ARMmbed/greentea/blob/master/mbed_greentea/mbed_greentea_cli.py#L396\r\n\r\nThis fix changes the blocking call to `join` to one that timesout after 0.1 seconds. The join is called in a loop until the thread's `isAlive()` function returns False.\r\n\r\n@geky @theotherjimmy @jupe I'm sure you'll be very happy to see this fix finally happen 😄 \r\n\r\n@mazimkhan Could you please take a look?","created_at":"2017-06-06T18:37:52Z","updated_at":"2017-06-07T10:19:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f765210f356783a989cc959279b44ff1ef87f7a9","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/ARMmbed/greentea/pulls/226/commits","review_comments_url":"https://api.github.com/repos/ARMmbed/greentea/pulls/226/comments","review_comment_url":"https://api.github.com/repos/ARMmbed/greentea/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ARMmbed/greentea/issues/226/comments","statuses_url":"https://api.github.com/repos/ARMmbed/greentea/statuses/9eb6021e6f2dbb4f2544aee4bbde43e19be4c682","head":{"label":"bridadan:fix_posix_interrupts","ref":"fix_posix_interrupts","sha":"9eb6021e6f2dbb4f2544aee4bbde43e19be4c682","user":{"login":"bridadan","id":3123977,"avatar_url":"https://avatars1.githubusercontent.com/u/3123977?v=3","gravatar_id":"","url":"https://api.github.com/users/bridadan","html_url":"https://github.com/bridadan","followers_url":"https://api.github.com/users/bridadan/followers","following_url":"https://api.github.com/users/bridadan/following{/other_user}","gists_url":"https://api.github.com/users/bridadan/gists{/gist_id}","starred_url":"https://api.github.com/users/bridadan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bridadan/subscriptions","organizations_url":"https://api.github.com/users/bridadan/orgs","repos_url":"https://api.github.com/users/bridadan/repos","events_url":"https://api.github.com/users/bridadan/events{/privacy}","received_events_url":"https://api.github.com/users/bridadan/received_events","type":"User","site_admin":false},"repo":{"id":55518699,"name":"greentea","full_name":"bridadan/greentea","owner":{"login":"bridadan","id":3123977,"avatar_url":"https://avatars1.githubusercontent.com/u/3123977?v=3","gravatar_id":"","url":"https://api.github.com/users/bridadan","html_url":"https://github.com/bridadan","followers_url":"https://api.github.com/users/bridadan/followers","following_url":"https://api.github.com/users/bridadan/following{/other_user}","gists_url":"https://api.github.com/users/bridadan/gists{/gist_id}","starred_url":"https://api.github.com/users/bridadan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bridadan/subscriptions","organizations_url":"https://api.github.com/users/bridadan/orgs","repos_url":"https://api.github.com/users/bridadan/repos","events_url":"https://api.github.com/users/bridadan/events{/privacy}","received_events_url":"https://api.github.com/users/bridadan/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bridadan/greentea","description":"\"Generic Regression Environment for test automation\" for mbed","fork":true,"url":"https://api.github.com/repos/bridadan/greentea","forks_url":"https://api.github.com/repos/bridadan/greentea/forks","keys_url":"https://api.github.com/repos/bridadan/greentea/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bridadan/greentea/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bridadan/greentea/teams","hooks_url":"https://api.github.com/repos/bridadan/greentea/hooks","issue_events_url":"https://api.github.com/repos/bridadan/greentea/issues/events{/number}","events_url":"https://api.github.com/repos/bridadan/greentea/events","assignees_url":"https://api.github.com/repos/bridadan/greentea/assignees{/user}","branches_url":"https://api.github.com/repos/bridadan/greentea/branches{/branch}","tags_url":"https://api.github.com/repos/bridadan/greentea/tags","blobs_url":"https://api.github.com/repos/bridadan/greentea/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bridadan/greentea/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bridadan/greentea/git/refs{/sha}","trees_url":"https://api.github.com/repos/bridadan/greentea/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bridadan/greentea/statuses/{sha}","languages_url":"https://api.github.com/repos/bridadan/greentea/languages","stargazers_url":"https://api.github.com/repos/bridadan/greentea/stargazers","contributors_url":"https://api.github.com/repos/bridadan/greentea/contributors","subscribers_url":"https://api.github.com/repos/bridadan/greentea/subscribers","subscription_url":"https://api.github.com/repos/bridadan/greentea/subscription","commits_url":"https://api.github.com/repos/bridadan/greentea/commits{/sha}","git_commits_url":"https://api.github.com/repos/bridadan/greentea/git/commits{/sha}","comments_url":"https://api.github.com/repos/bridadan/greentea/comments{/number}","issue_comment_url":"https://api.github.com/repos/bridadan/greentea/issues/comments{/number}","contents_url":"https://api.github.com/repos/bridadan/greentea/contents/{+path}","compare_url":"https://api.github.com/repos/bridadan/greentea/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bridadan/greentea/merges","archive_url":"https://api.github.com/repos/bridadan/greentea/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bridadan/greentea/downloads","issues_url":"https://api.github.com/repos/bridadan/greentea/issues{/number}","pulls_url":"https://api.github.com/repos/bridadan/greentea/pulls{/number}","milestones_url":"https://api.github.com/repos/bridadan/greentea/milestones{/number}","notifications_url":"https://api.github.com/repos/bridadan/greentea/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bridadan/greentea/labels{/name}","releases_url":"https://api.github.com/repos/bridadan/greentea/releases{/id}","deployments_url":"https://api.github.com/repos/bridadan/greentea/deployments","created_at":"2016-04-05T15:16:36Z","updated_at":"2016-04-07T01:32:11Z","pushed_at":"2017-06-06T18:34:07Z","git_url":"git://github.com/bridadan/greentea.git","ssh_url":"git@github.com:bridadan/greentea.git","clone_url":"https://github.com/bridadan/greentea.git","svn_url":"https://github.com/bridadan/greentea","homepage":"","size":820,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ARMmbed:master","ref":"master","sha":"a019601d1aff4b270902b10525dc44f4fbb91d9e","user":{"login":"ARMmbed","id":8916057,"avatar_url":"https://avatars0.githubusercontent.com/u/8916057?v=3","gravatar_id":"","url":"https://api.github.com/users/ARMmbed","html_url":"https://github.com/ARMmbed","followers_url":"https://api.github.com/users/ARMmbed/followers","following_url":"https://api.github.com/users/ARMmbed/following{/other_user}","gists_url":"https://api.github.com/users/ARMmbed/gists{/gist_id}","starred_url":"https://api.github.com/users/ARMmbed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ARMmbed/subscriptions","organizations_url":"https://api.github.com/users/ARMmbed/orgs","repos_url":"https://api.github.com/users/ARMmbed/repos","events_url":"https://api.github.com/users/ARMmbed/events{/privacy}","received_events_url":"https://api.github.com/users/ARMmbed/received_events","type":"Organization","site_admin":false},"repo":{"id":27880964,"name":"greentea","full_name":"ARMmbed/greentea","owner":{"login":"ARMmbed","id":8916057,"avatar_url":"https://avatars0.githubusercontent.com/u/8916057?v=3","gravatar_id":"","url":"https://api.github.com/users/ARMmbed","html_url":"https://github.com/ARMmbed","followers_url":"https://api.github.com/users/ARMmbed/followers","following_url":"https://api.github.com/users/ARMmbed/following{/other_user}","gists_url":"https://api.github.com/users/ARMmbed/gists{/gist_id}","starred_url":"https://api.github.com/users/ARMmbed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ARMmbed/subscriptions","organizations_url":"https://api.github.com/users/ARMmbed/orgs","repos_url":"https://api.github.com/users/ARMmbed/repos","events_url":"https://api.github.com/users/ARMmbed/events{/privacy}","received_events_url":"https://api.github.com/users/ARMmbed/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ARMmbed/greentea","description":"\"Generic Regression Environment for test automation\" for mbed","fork":false,"url":"https://api.github.com/repos/ARMmbed/greentea","forks_url":"https://api.github.com/repos/ARMmbed/greentea/forks","keys_url":"https://api.github.com/repos/ARMmbed/greentea/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ARMmbed/greentea/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ARMmbed/greentea/teams","hooks_url":"https://api.github.com/repos/ARMmbed/greentea/hooks","issue_events_url":"https://api.github.com/repos/ARMmbed/greentea/issues/events{/number}","events_url":"https://api.github.com/repos/ARMmbed/greentea/events","assignees_url":"https://api.github.com/repos/ARMmbed/greentea/assignees{/user}","branches_url":"https://api.github.com/repos/ARMmbed/greentea/branches{/branch}","tags_url":"https://api.github.com/repos/ARMmbed/greentea/tags","blobs_url":"https://api.github.com/repos/ARMmbed/greentea/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ARMmbed/greentea/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ARMmbed/greentea/git/refs{/sha}","trees_url":"https://api.github.com/repos/ARMmbed/greentea/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ARMmbed/greentea/statuses/{sha}","languages_url":"https://api.github.com/repos/ARMmbed/greentea/languages","stargazers_url":"https://api.github.com/repos/ARMmbed/greentea/stargazers","contributors_url":"https://api.github.com/repos/ARMmbed/greentea/contributors","subscribers_url":"https://api.github.com/repos/ARMmbed/greentea/subscribers","subscription_url":"https://api.github.com/repos/ARMmbed/greentea/subscription","commits_url":"https://api.github.com/repos/ARMmbed/greentea/commits{/sha}","git_commits_url":"https://api.github.com/repos/ARMmbed/greentea/git/commits{/sha}","comments_url":"https://api.github.com/repos/ARMmbed/greentea/comments{/number}","issue_comment_url":"https://api.github.com/repos/ARMmbed/greentea/issues/comments{/number}","contents_url":"https://api.github.com/repos/ARMmbed/greentea/contents/{+path}","compare_url":"https://api.github.com/repos/ARMmbed/greentea/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ARMmbed/greentea/merges","archive_url":"https://api.github.com/repos/ARMmbed/greentea/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ARMmbed/greentea/downloads","issues_url":"https://api.github.com/repos/ARMmbed/greentea/issues{/number}","pulls_url":"https://api.github.com/repos/ARMmbed/greentea/pulls{/number}","milestones_url":"https://api.github.com/repos/ARMmbed/greentea/milestones{/number}","notifications_url":"https://api.github.com/repos/ARMmbed/greentea/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ARMmbed/greentea/labels{/name}","releases_url":"https://api.github.com/repos/ARMmbed/greentea/releases{/id}","deployments_url":"https://api.github.com/repos/ARMmbed/greentea/deployments","created_at":"2014-12-11T16:39:08Z","updated_at":"2017-05-31T18:10:10Z","pushed_at":"2017-06-06T18:37:53Z","git_url":"git://github.com/ARMmbed/greentea.git","ssh_url":"git@github.com:ARMmbed/greentea.git","clone_url":"https://github.com/ARMmbed/greentea.git","svn_url":"https://github.com/ARMmbed/greentea","homepage":"","size":836,"stargazers_count":16,"watchers_count":16,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":28,"mirror_url":null,"open_issues_count":23,"forks":28,"open_issues":23,"watchers":16,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ARMmbed/greentea/pulls/226"},"html":{"href":"https://github.com/ARMmbed/greentea/pull/226"},"issue":{"href":"https://api.github.com/repos/ARMmbed/greentea/issues/226"},"comments":{"href":"https://api.github.com/repos/ARMmbed/greentea/issues/226/comments"},"review_comments":{"href":"https://api.github.com/repos/ARMmbed/greentea/pulls/226/comments"},"review_comment":{"href":"https://api.github.com/repos/ARMmbed/greentea/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ARMmbed/greentea/pulls/226/commits"},"statuses":{"href":"https://api.github.com/repos/ARMmbed/greentea/statuses/9eb6021e6f2dbb4f2544aee4bbde43e19be4c682"}}}}
{"actor":{"display_login":"adbridge"}}