{"action":"created","issue":{"url":"https://api.github.com/repos/ivmai/bdwgc/issues/91","repository_url":"https://api.github.com/repos/ivmai/bdwgc","labels_url":"https://api.github.com/repos/ivmai/bdwgc/issues/91/labels{/name}","comments_url":"https://api.github.com/repos/ivmai/bdwgc/issues/91/comments","events_url":"https://api.github.com/repos/ivmai/bdwgc/issues/91/events","html_url":"https://github.com/ivmai/bdwgc/pull/91","id":131854657,"number":91,"title":"Add signal mask to GC marker threads","user":{"login":"qykth-git","id":14939671,"avatar_url":"https://avatars.githubusercontent.com/u/14939671?v=3","gravatar_id":"","url":"https://api.github.com/users/qykth-git","html_url":"https://github.com/qykth-git","followers_url":"https://api.github.com/users/qykth-git/followers","following_url":"https://api.github.com/users/qykth-git/following{/other_user}","gists_url":"https://api.github.com/users/qykth-git/gists{/gist_id}","starred_url":"https://api.github.com/users/qykth-git/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qykth-git/subscriptions","organizations_url":"https://api.github.com/users/qykth-git/orgs","repos_url":"https://api.github.com/users/qykth-git/repos","events_url":"https://api.github.com/users/qykth-git/events{/privacy}","received_events_url":"https://api.github.com/users/qykth-git/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-02-06T13:08:33Z","updated_at":"2016-02-22T15:06:19Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ivmai/bdwgc/pulls/91","html_url":"https://github.com/ivmai/bdwgc/pull/91","diff_url":"https://github.com/ivmai/bdwgc/pull/91.diff","patch_url":"https://github.com/ivmai/bdwgc/pull/91.patch"},"body":"When one user thread sets its own signal handler in multi-threaded code, GC marker thread sometimes steal and drop user signal calls. Because GC marker thread doesn't knows the user thread's signal handler, and use default signal handler that ignores any signal call. This becomes to drop the signal call.\r\n\r\nThis patch inhibits to accept signals by GC marker threads except GC system signals, and don't drop user signal calls.\r\n\r\nThis patch comes from [Gauche] ( https://github.com/shirok/Gauche ), and works well in long time.\r\n\r\n* `pthread_support.c` (`GC_start_mark_threads_inner`): Add signal mask to GC marker threads, and do not to accidentally steal user signal calls."},"comment":{"url":"https://api.github.com/repos/ivmai/bdwgc/issues/comments/187222076","html_url":"https://github.com/ivmai/bdwgc/pull/91#issuecomment-187222076","issue_url":"https://api.github.com/repos/ivmai/bdwgc/issues/91","id":187222076,"user":{"login":"qykth-git","id":14939671,"avatar_url":"https://avatars.githubusercontent.com/u/14939671?v=3","gravatar_id":"","url":"https://api.github.com/users/qykth-git","html_url":"https://github.com/qykth-git","followers_url":"https://api.github.com/users/qykth-git/followers","following_url":"https://api.github.com/users/qykth-git/following{/other_user}","gists_url":"https://api.github.com/users/qykth-git/gists{/gist_id}","starred_url":"https://api.github.com/users/qykth-git/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qykth-git/subscriptions","organizations_url":"https://api.github.com/users/qykth-git/orgs","repos_url":"https://api.github.com/users/qykth-git/repos","events_url":"https://api.github.com/users/qykth-git/events{/privacy}","received_events_url":"https://api.github.com/users/qykth-git/received_events","type":"User","site_admin":false},"created_at":"2016-02-22T15:06:19Z","updated_at":"2016-02-22T15:06:19Z","body":"Squashed patches into single one."}}