{"action":"created","comment":{"url":"https://api.github.com/repos/mono/mono/pulls/comments/45754785","id":45754785,"diff_hunk":"@@ -2014,13 +2014,14 @@ Mono_Posix_ToUtimbuf (struct utimbuf *from, struct Mono_Posix_Utimbuf* to);\n \n \n struct Mono_Unix_UnixSignal_SignalInfo {\n-\tint   signum;\n-\tint   count;\n+\tint   signum;   // Read by signal handlers\n+\tint   count;    // Read and written by signal handlers\n \tint   read_fd;\n-\tint   write_fd;\n+\tint   write_fd; // Read by signal handlers\n+\tint   pipecnt;  // Read by signal handlers","path":"support/map.h","position":11,"original_position":11,"commit_id":"f78fb9f0a981b33c4d39a97925d34a443b303411","original_commit_id":"f78fb9f0a981b33c4d39a97925d34a443b303411","user":{"login":"jonpryor","id":155958,"avatar_url":"https://avatars.githubusercontent.com/u/155958?v=3","gravatar_id":"","url":"https://api.github.com/users/jonpryor","html_url":"https://github.com/jonpryor","followers_url":"https://api.github.com/users/jonpryor/followers","following_url":"https://api.github.com/users/jonpryor/following{/other_user}","gists_url":"https://api.github.com/users/jonpryor/gists{/gist_id}","starred_url":"https://api.github.com/users/jonpryor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonpryor/subscriptions","organizations_url":"https://api.github.com/users/jonpryor/orgs","repos_url":"https://api.github.com/users/jonpryor/repos","events_url":"https://api.github.com/users/jonpryor/events{/privacy}","received_events_url":"https://api.github.com/users/jonpryor/received_events","type":"User","site_admin":false},"body":"...which brings us to ordering: the ordering (and naming) of fields here _must_ match that of `Mono.Unix.UnixSignal.SignalInfo`, in `UnixSignal.cs`.\r\n\r\nYou may also need to consider synchronization between the C# and C sides of this, e.g. C# accesses `SignalInfo.count`.","created_at":"2015-11-24T16:04:15Z","updated_at":"2015-11-24T16:04:15Z","html_url":"https://github.com/mono/mono/pull/2260#discussion_r45754785","pull_request_url":"https://api.github.com/repos/mono/mono/pulls/2260","_links":{"self":{"href":"https://api.github.com/repos/mono/mono/pulls/comments/45754785"},"html":{"href":"https://github.com/mono/mono/pull/2260#discussion_r45754785"},"pull_request":{"href":"https://api.github.com/repos/mono/mono/pulls/2260"}}},"pull_request":{"url":"https://api.github.com/repos/mono/mono/pulls/2260","id":51569849,"html_url":"https://github.com/mono/mono/pull/2260","diff_url":"https://github.com/mono/mono/pull/2260.diff","patch_url":"https://github.com/mono/mono/pull/2260.patch","issue_url":"https://api.github.com/repos/mono/mono/issues/2260","number":2260,"state":"open","locked":false,"title":"Fix sporadic Mono.Unix.UnixSignalTest.TestWaitAny crashes (bug #35936)","user":{"login":"xmcclure","id":15091917,"avatar_url":"https://avatars.githubusercontent.com/u/15091917?v=3","gravatar_id":"","url":"https://api.github.com/users/xmcclure","html_url":"https://github.com/xmcclure","followers_url":"https://api.github.com/users/xmcclure/followers","following_url":"https://api.github.com/users/xmcclure/following{/other_user}","gists_url":"https://api.github.com/users/xmcclure/gists{/gist_id}","starred_url":"https://api.github.com/users/xmcclure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xmcclure/subscriptions","organizations_url":"https://api.github.com/users/xmcclure/orgs","repos_url":"https://api.github.com/users/xmcclure/repos","events_url":"https://api.github.com/users/xmcclure/events{/privacy}","received_events_url":"https://api.github.com/users/xmcclure/received_events","type":"User","site_admin":false},"body":"Issue 1: Do not fsync on a pipe(). That is invalid, and apparently corrupts the stack about one out of every 100,000 tries on current OS X. (This is the one that was occurring on the builders, and resulted in SIGSEGV)\r\n\r\nIssue 2: Currently there is a race condition in signal.c where a signal-waiting thread can close the pipe and then the signal handler can try to write to it. Introduce a locking mechanism to prevent this. (I coaxed this one into happening in standalone testing; it caused SIGPIPE)\r\n\r\nIn addition, some general cleanup:\r\n\r\nsignal.c: More comments, and use of atomic read and write functions is now more consistent.\r\nnunit: Improve error reporting in case of a test returning a null results object in the absence of an exception (this might only occur in case of memory corruption, but I definitely saw it).\r\n","created_at":"2015-11-23T19:40:45Z","updated_at":"2015-11-24T16:04:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2b414e980a26a071d420df18e3b2c885cedf7af1","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/mono/mono/pulls/2260/commits","review_comments_url":"https://api.github.com/repos/mono/mono/pulls/2260/comments","review_comment_url":"https://api.github.com/repos/mono/mono/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mono/mono/issues/2260/comments","statuses_url":"https://api.github.com/repos/mono/mono/statuses/f78fb9f0a981b33c4d39a97925d34a443b303411","head":{"label":"xmcclure:fix-testwaitany","ref":"fix-testwaitany","sha":"f78fb9f0a981b33c4d39a97925d34a443b303411","user":{"login":"xmcclure","id":15091917,"avatar_url":"https://avatars.githubusercontent.com/u/15091917?v=3","gravatar_id":"","url":"https://api.github.com/users/xmcclure","html_url":"https://github.com/xmcclure","followers_url":"https://api.github.com/users/xmcclure/followers","following_url":"https://api.github.com/users/xmcclure/following{/other_user}","gists_url":"https://api.github.com/users/xmcclure/gists{/gist_id}","starred_url":"https://api.github.com/users/xmcclure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xmcclure/subscriptions","organizations_url":"https://api.github.com/users/xmcclure/orgs","repos_url":"https://api.github.com/users/xmcclure/repos","events_url":"https://api.github.com/users/xmcclure/events{/privacy}","received_events_url":"https://api.github.com/users/xmcclure/received_events","type":"User","site_admin":false},"repo":{"id":44119985,"name":"mono","full_name":"xmcclure/mono","owner":{"login":"xmcclure","id":15091917,"avatar_url":"https://avatars.githubusercontent.com/u/15091917?v=3","gravatar_id":"","url":"https://api.github.com/users/xmcclure","html_url":"https://github.com/xmcclure","followers_url":"https://api.github.com/users/xmcclure/followers","following_url":"https://api.github.com/users/xmcclure/following{/other_user}","gists_url":"https://api.github.com/users/xmcclure/gists{/gist_id}","starred_url":"https://api.github.com/users/xmcclure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xmcclure/subscriptions","organizations_url":"https://api.github.com/users/xmcclure/orgs","repos_url":"https://api.github.com/users/xmcclure/repos","events_url":"https://api.github.com/users/xmcclure/events{/privacy}","received_events_url":"https://api.github.com/users/xmcclure/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/xmcclure/mono","description":"Mono open source ECMA CLI, C# and .NET implementation.","fork":true,"url":"https://api.github.com/repos/xmcclure/mono","forks_url":"https://api.github.com/repos/xmcclure/mono/forks","keys_url":"https://api.github.com/repos/xmcclure/mono/keys{/key_id}","collaborators_url":"https://api.github.com/repos/xmcclure/mono/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/xmcclure/mono/teams","hooks_url":"https://api.github.com/repos/xmcclure/mono/hooks","issue_events_url":"https://api.github.com/repos/xmcclure/mono/issues/events{/number}","events_url":"https://api.github.com/repos/xmcclure/mono/events","assignees_url":"https://api.github.com/repos/xmcclure/mono/assignees{/user}","branches_url":"https://api.github.com/repos/xmcclure/mono/branches{/branch}","tags_url":"https://api.github.com/repos/xmcclure/mono/tags","blobs_url":"https://api.github.com/repos/xmcclure/mono/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/xmcclure/mono/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/xmcclure/mono/git/refs{/sha}","trees_url":"https://api.github.com/repos/xmcclure/mono/git/trees{/sha}","statuses_url":"https://api.github.com/repos/xmcclure/mono/statuses/{sha}","languages_url":"https://api.github.com/repos/xmcclure/mono/languages","stargazers_url":"https://api.github.com/repos/xmcclure/mono/stargazers","contributors_url":"https://api.github.com/repos/xmcclure/mono/contributors","subscribers_url":"https://api.github.com/repos/xmcclure/mono/subscribers","subscription_url":"https://api.github.com/repos/xmcclure/mono/subscription","commits_url":"https://api.github.com/repos/xmcclure/mono/commits{/sha}","git_commits_url":"https://api.github.com/repos/xmcclure/mono/git/commits{/sha}","comments_url":"https://api.github.com/repos/xmcclure/mono/comments{/number}","issue_comment_url":"https://api.github.com/repos/xmcclure/mono/issues/comments{/number}","contents_url":"https://api.github.com/repos/xmcclure/mono/contents/{+path}","compare_url":"https://api.github.com/repos/xmcclure/mono/compare/{base}...{head}","merges_url":"https://api.github.com/repos/xmcclure/mono/merges","archive_url":"https://api.github.com/repos/xmcclure/mono/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/xmcclure/mono/downloads","issues_url":"https://api.github.com/repos/xmcclure/mono/issues{/number}","pulls_url":"https://api.github.com/repos/xmcclure/mono/pulls{/number}","milestones_url":"https://api.github.com/repos/xmcclure/mono/milestones{/number}","notifications_url":"https://api.github.com/repos/xmcclure/mono/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/xmcclure/mono/labels{/name}","releases_url":"https://api.github.com/repos/xmcclure/mono/releases{/id}","created_at":"2015-10-12T16:32:27Z","updated_at":"2015-10-12T16:35:38Z","pushed_at":"2015-11-24T15:42:50Z","git_url":"git://github.com/xmcclure/mono.git","ssh_url":"git@github.com:xmcclure/mono.git","clone_url":"https://github.com/xmcclure/mono.git","svn_url":"https://github.com/xmcclure/mono","homepage":"http://www.mono-project.com/","size":452330,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_downloads":false,"has_wiki":false,"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":"mono:master","ref":"master","sha":"b14d33150a58ce929b6a9b9b08529c1a51187d68","user":{"login":"mono","id":53395,"avatar_url":"https://avatars.githubusercontent.com/u/53395?v=3","gravatar_id":"","url":"https://api.github.com/users/mono","html_url":"https://github.com/mono","followers_url":"https://api.github.com/users/mono/followers","following_url":"https://api.github.com/users/mono/following{/other_user}","gists_url":"https://api.github.com/users/mono/gists{/gist_id}","starred_url":"https://api.github.com/users/mono/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mono/subscriptions","organizations_url":"https://api.github.com/users/mono/orgs","repos_url":"https://api.github.com/users/mono/repos","events_url":"https://api.github.com/users/mono/events{/privacy}","received_events_url":"https://api.github.com/users/mono/received_events","type":"Organization","site_admin":false},"repo":{"id":791611,"name":"mono","full_name":"mono/mono","owner":{"login":"mono","id":53395,"avatar_url":"https://avatars.githubusercontent.com/u/53395?v=3","gravatar_id":"","url":"https://api.github.com/users/mono","html_url":"https://github.com/mono","followers_url":"https://api.github.com/users/mono/followers","following_url":"https://api.github.com/users/mono/following{/other_user}","gists_url":"https://api.github.com/users/mono/gists{/gist_id}","starred_url":"https://api.github.com/users/mono/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mono/subscriptions","organizations_url":"https://api.github.com/users/mono/orgs","repos_url":"https://api.github.com/users/mono/repos","events_url":"https://api.github.com/users/mono/events{/privacy}","received_events_url":"https://api.github.com/users/mono/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mono/mono","description":"Mono open source ECMA CLI, C# and .NET implementation.","fork":false,"url":"https://api.github.com/repos/mono/mono","forks_url":"https://api.github.com/repos/mono/mono/forks","keys_url":"https://api.github.com/repos/mono/mono/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mono/mono/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mono/mono/teams","hooks_url":"https://api.github.com/repos/mono/mono/hooks","issue_events_url":"https://api.github.com/repos/mono/mono/issues/events{/number}","events_url":"https://api.github.com/repos/mono/mono/events","assignees_url":"https://api.github.com/repos/mono/mono/assignees{/user}","branches_url":"https://api.github.com/repos/mono/mono/branches{/branch}","tags_url":"https://api.github.com/repos/mono/mono/tags","blobs_url":"https://api.github.com/repos/mono/mono/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mono/mono/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mono/mono/git/refs{/sha}","trees_url":"https://api.github.com/repos/mono/mono/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mono/mono/statuses/{sha}","languages_url":"https://api.github.com/repos/mono/mono/languages","stargazers_url":"https://api.github.com/repos/mono/mono/stargazers","contributors_url":"https://api.github.com/repos/mono/mono/contributors","subscribers_url":"https://api.github.com/repos/mono/mono/subscribers","subscription_url":"https://api.github.com/repos/mono/mono/subscription","commits_url":"https://api.github.com/repos/mono/mono/commits{/sha}","git_commits_url":"https://api.github.com/repos/mono/mono/git/commits{/sha}","comments_url":"https://api.github.com/repos/mono/mono/comments{/number}","issue_comment_url":"https://api.github.com/repos/mono/mono/issues/comments{/number}","contents_url":"https://api.github.com/repos/mono/mono/contents/{+path}","compare_url":"https://api.github.com/repos/mono/mono/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mono/mono/merges","archive_url":"https://api.github.com/repos/mono/mono/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mono/mono/downloads","issues_url":"https://api.github.com/repos/mono/mono/issues{/number}","pulls_url":"https://api.github.com/repos/mono/mono/pulls{/number}","milestones_url":"https://api.github.com/repos/mono/mono/milestones{/number}","notifications_url":"https://api.github.com/repos/mono/mono/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mono/mono/labels{/name}","releases_url":"https://api.github.com/repos/mono/mono/releases{/id}","created_at":"2010-07-22T18:06:36Z","updated_at":"2015-11-24T15:39:27Z","pushed_at":"2015-11-24T15:42:53Z","git_url":"git://github.com/mono/mono.git","ssh_url":"git@github.com:mono/mono.git","clone_url":"https://github.com/mono/mono.git","svn_url":"https://github.com/mono/mono","homepage":"http://www.mono-project.com/","size":479162,"stargazers_count":4035,"watchers_count":4035,"language":"C#","has_issues":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":1997,"mirror_url":null,"open_issues_count":122,"forks":1997,"open_issues":122,"watchers":4035,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mono/mono/pulls/2260"},"html":{"href":"https://github.com/mono/mono/pull/2260"},"issue":{"href":"https://api.github.com/repos/mono/mono/issues/2260"},"comments":{"href":"https://api.github.com/repos/mono/mono/issues/2260/comments"},"review_comments":{"href":"https://api.github.com/repos/mono/mono/pulls/2260/comments"},"review_comment":{"href":"https://api.github.com/repos/mono/mono/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mono/mono/pulls/2260/commits"},"statuses":{"href":"https://api.github.com/repos/mono/mono/statuses/f78fb9f0a981b33c4d39a97925d34a443b303411"}}}}