)]}'
{"doc/source/contributor/concurrency.rst":[{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"b01ab4caabf451be94c6047103f53329de099827","unresolved":false,"context_lines":[{"line_number":115,"context_line":"all of them have completed. The advantage of ``do_while_futures`` is that it"},{"line_number":116,"context_line":"allows to immediately call a method as soon as a future finishes. The arguments"},{"line_number":117,"context_line":"for this callback method can be supplied when calling ``do_while_futures``,"},{"line_number":118,"context_line":"however, the first argument to the callback is always the future itself!. If"},{"line_number":119,"context_line":"the collection of futures can safely be modified ``do_while_futures_modify``"},{"line_number":120,"context_line":"can be used and should have slightly better performance. The following example"},{"line_number":121,"context_line":"will show how ``do_while_futures`` is used in the decision engine."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_7c70afa5","line":118,"range":{"start_line":118,"start_character":71,"end_line":118,"end_character":72},"updated":"2019-11-27 06:12:37.000000000","message":"nit","commit_id":"0f71e174fa0ed957f4a12c4db221c8a3b42a804a"},{"author":{"_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"},"change_message_id":"021b6e083702a76b19978494d439c2c0a0eaa893","unresolved":false,"context_lines":[{"line_number":115,"context_line":"all of them have completed. The advantage of ``do_while_futures`` is that it"},{"line_number":116,"context_line":"allows to immediately call a method as soon as a future finishes. The arguments"},{"line_number":117,"context_line":"for this callback method can be supplied when calling ``do_while_futures``,"},{"line_number":118,"context_line":"however, the first argument to the callback is always the future itself!. If"},{"line_number":119,"context_line":"the collection of futures can safely be modified ``do_while_futures_modify``"},{"line_number":120,"context_line":"can be used and should have slightly better performance. The following example"},{"line_number":121,"context_line":"will show how ``do_while_futures`` is used in the decision engine."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_fcdc9fe2","line":118,"range":{"start_line":118,"start_character":71,"end_line":118,"end_character":72},"in_reply_to":"3fa7e38b_7c70afa5","updated":"2019-11-27 07:48:08.000000000","message":"Done","commit_id":"0f71e174fa0ed957f4a12c4db221c8a3b42a804a"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"b01ab4caabf451be94c6047103f53329de099827","unresolved":false,"context_lines":[{"line_number":183,"context_line":"*******************"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"The applier does not use the futurist_ GreenThreadPoolExecutor_ directly but"},{"line_number":186,"context_line":"instead uses taskflow_. However, taskflow still utilizes a a greenthreadpool."},{"line_number":187,"context_line":"This threadpool is initialized in the workflow engine called"},{"line_number":188,"context_line":":class:`~.DefaultWorkFlowEngine`. Currently Watcher supports one workflow"},{"line_number":189,"context_line":"engine but the base class allows contributors to develop other workflow engines"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_5c6b73b8","line":186,"range":{"start_line":186,"start_character":59,"end_line":186,"end_character":60},"updated":"2019-11-27 06:12:37.000000000","message":"nit: repeat. :)","commit_id":"0f71e174fa0ed957f4a12c4db221c8a3b42a804a"},{"author":{"_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"},"change_message_id":"021b6e083702a76b19978494d439c2c0a0eaa893","unresolved":false,"context_lines":[{"line_number":183,"context_line":"*******************"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"The applier does not use the futurist_ GreenThreadPoolExecutor_ directly but"},{"line_number":186,"context_line":"instead uses taskflow_. However, taskflow still utilizes a a greenthreadpool."},{"line_number":187,"context_line":"This threadpool is initialized in the workflow engine called"},{"line_number":188,"context_line":":class:`~.DefaultWorkFlowEngine`. Currently Watcher supports one workflow"},{"line_number":189,"context_line":"engine but the base class allows contributors to develop other workflow engines"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_9ceb2b7a","line":186,"range":{"start_line":186,"start_character":59,"end_line":186,"end_character":60},"in_reply_to":"3fa7e38b_5c6b73b8","updated":"2019-11-27 07:48:08.000000000","message":"Done","commit_id":"0f71e174fa0ed957f4a12c4db221c8a3b42a804a"}],"doc/source/contributor/concurrency/concurrency.rst":[{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"81a988d491de593bd77fca4a357564ba0b5b1a51","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The primary libraries maintained by OpenStack to facilitate concurrency are"},{"line_number":17,"context_line":"futurist_ and taskflow_. Here futurist is a more straightforward and"},{"line_number":18,"context_line":"lightweight library were taskflow is more advanced supporting features like"},{"line_number":19,"context_line":"rollback mechanisms. Within Watcher both libraries are used to facilitate"},{"line_number":20,"context_line":"concurrency."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_8596f593","line":18,"range":{"start_line":18,"start_character":20,"end_line":18,"end_character":24},"updated":"2019-11-18 07:38:31.000000000","message":"while?","commit_id":"808a805b9f940e6a32e372ce10db5000b49e1922"},{"author":{"_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"},"change_message_id":"269ffbda3820acd020ee14d850ad982f899300a6","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The primary libraries maintained by OpenStack to facilitate concurrency are"},{"line_number":17,"context_line":"futurist_ and taskflow_. Here futurist is a more straightforward and"},{"line_number":18,"context_line":"lightweight library were taskflow is more advanced supporting features like"},{"line_number":19,"context_line":"rollback mechanisms. Within Watcher both libraries are used to facilitate"},{"line_number":20,"context_line":"concurrency."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_d54af8aa","line":18,"range":{"start_line":18,"start_character":20,"end_line":18,"end_character":24},"in_reply_to":"3fa7e38b_8596f593","updated":"2019-11-25 13:47:32.000000000","message":"Done","commit_id":"808a805b9f940e6a32e372ce10db5000b49e1922"}],"doc/source/index.rst":[{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"81a988d491de593bd77fca4a357564ba0b5b1a51","unresolved":false,"context_lines":[{"line_number":44,"context_line":"  glossary"},{"line_number":45,"context_line":"  architecture"},{"line_number":46,"context_line":"  contributor/contributing"},{"line_number":47,"context_line":"  contributor/concurrency/concurrency"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Getting Started"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_05d1a557","line":47,"range":{"start_line":47,"start_character":2,"end_line":47,"end_character":37},"updated":"2019-11-18 07:38:31.000000000","message":"This section is Introduction, maybe it\u0027s better to put in admin section.\nand It returns \u0027Not Found\u0027 when I visit the preview site\nhttps://openstack.fortnebula.com:13808/v1/AUTH_e8fd161dc34c421a979a9e6421f823e9/zuul_opendev_logs_4ab/693516/1/check/openstack-tox-docs/4ab4771/docs/contributor/concurrency/concurrency.html","commit_id":"808a805b9f940e6a32e372ce10db5000b49e1922"},{"author":{"_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"},"change_message_id":"269ffbda3820acd020ee14d850ad982f899300a6","unresolved":false,"context_lines":[{"line_number":44,"context_line":"  glossary"},{"line_number":45,"context_line":"  architecture"},{"line_number":46,"context_line":"  contributor/contributing"},{"line_number":47,"context_line":"  contributor/concurrency/concurrency"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Getting Started"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_957800f8","line":47,"range":{"start_line":47,"start_character":2,"end_line":47,"end_character":37},"in_reply_to":"3fa7e38b_05d1a557","updated":"2019-11-25 13:47:32.000000000","message":"Done","commit_id":"808a805b9f940e6a32e372ce10db5000b49e1922"}]}
