{"action":"created","issue":{"url":"https://api.github.com/repos/halide/Halide/issues/2576","repository_url":"https://api.github.com/repos/halide/Halide","labels_url":"https://api.github.com/repos/halide/Halide/issues/2576/labels{/name}","comments_url":"https://api.github.com/repos/halide/Halide/issues/2576/comments","events_url":"https://api.github.com/repos/halide/Halide/issues/2576/events","html_url":"https://github.com/halide/Halide/pull/2576","id":277928322,"node_id":"MDExOlB1bGxSZXF1ZXN0MTU1NDY4MTg3","number":2576,"title":"Async","user":{"login":"abadams","id":515398,"node_id":"MDQ6VXNlcjUxNTM5OA==","avatar_url":"https://avatars0.githubusercontent.com/u/515398?v=4","gravatar_id":"","url":"https://api.github.com/users/abadams","html_url":"https://github.com/abadams","followers_url":"https://api.github.com/users/abadams/followers","following_url":"https://api.github.com/users/abadams/following{/other_user}","gists_url":"https://api.github.com/users/abadams/gists{/gist_id}","starred_url":"https://api.github.com/users/abadams/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abadams/subscriptions","organizations_url":"https://api.github.com/users/abadams/orgs","repos_url":"https://api.github.com/users/abadams/repos","events_url":"https://api.github.com/users/abadams/events{/privacy}","received_events_url":"https://api.github.com/users/abadams/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2017-11-29T22:19:26Z","updated_at":"2018-07-03T23:11:16Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/halide/Halide/pulls/2576","html_url":"https://github.com/halide/Halide/pull/2576","diff_url":"https://github.com/halide/Halide/pull/2576.diff","patch_url":"https://github.com/halide/Halide/pull/2576.patch"},"body":"Adds the ability to schedule Funcs to be computed asynchronously. From Func::async docs:\r\n\r\n    /** Produce this Func asynchronously in a separate\r\n     * thread. Consumers will be run by the task system when the\r\n     * production is complete. If this Func's store level is different\r\n     * to its compute level, consumers will be run concurrently,\r\n     * blocking as necessary to prevent reading ahead of what the\r\n     * producer has computed. If storage is folded, then the producer\r\n     * will additionally not be permitted to run too far ahead of the\r\n     * consumer, to avoid clobbering data that has not yet been\r\n     * used.\r\n     *\r\n     * Take special care when combining this with custom thread pool\r\n     * implementations, as avoiding deadlock with producer-consumer\r\n     * parallelism requires a much more sophisticated parallel runtime\r\n     * than with data parallelism alone. It is strongly recommended\r\n     * you just use Halide's default thread pool, which guarantees no\r\n     * deadlock and a bound on the number of threads launched.\r\n    *//\r\n\r\nNot ready for review (there are a handful of TODOs), but this is at the point where I want continuous buildbot coverage."},"comment":{"url":"https://api.github.com/repos/halide/Halide/issues/comments/402317295","html_url":"https://github.com/halide/Halide/pull/2576#issuecomment-402317295","issue_url":"https://api.github.com/repos/halide/Halide/issues/2576","id":402317295,"node_id":"MDEyOklzc3VlQ29tbWVudDQwMjMxNzI5NQ==","user":{"login":"zvookin","id":1501716,"node_id":"MDQ6VXNlcjE1MDE3MTY=","avatar_url":"https://avatars2.githubusercontent.com/u/1501716?v=4","gravatar_id":"","url":"https://api.github.com/users/zvookin","html_url":"https://github.com/zvookin","followers_url":"https://api.github.com/users/zvookin/followers","following_url":"https://api.github.com/users/zvookin/following{/other_user}","gists_url":"https://api.github.com/users/zvookin/gists{/gist_id}","starred_url":"https://api.github.com/users/zvookin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zvookin/subscriptions","organizations_url":"https://api.github.com/users/zvookin/orgs","repos_url":"https://api.github.com/users/zvookin/repos","events_url":"https://api.github.com/users/zvookin/events{/privacy}","received_events_url":"https://api.github.com/users/zvookin/received_events","type":"User","site_admin":false},"created_at":"2018-07-03T23:11:16Z","updated_at":"2018-07-03T23:11:16Z","author_association":"MEMBER","body":"Should no longer be deadlocking and does not depend on thread local storage. Needs review and buildbot coverage, but should be mostly ready to merge. I'm going to see if we can tighten up the code a little bit as well to make it perform as well as or better than master on performance_inner_loop_parallel. (It is currently a bit slower on that test. Not worrisomely so however.)"}}
{"actor":{"display_login":"zvookin"}}