)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"ea3d06f6d51716237ccb5e12dc29fbcfa19b2b74","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2fe1d985_88e3df18","updated":"2026-01-11 15:50:53.000000000","message":"recheck","commit_id":"bd316aa26d60740487d52eacce16432a476b0a67"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7655a8691c1006ccbbe91bde7c792ee4e9cc113d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9fc1a9a9_a31746d4","updated":"2026-01-21 19:42:19.000000000","message":"idea lgtm but commented about implementation","commit_id":"a4a84045b6f469e0885f38d6df77da78b4d433d1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4901d611091c6dbd07e013659ad76ad3c5f99b24","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a08ff318_430dbc91","updated":"2026-01-22 18:54:55.000000000","message":"lgtm, thanks for working on this and response.","commit_id":"a4a84045b6f469e0885f38d6df77da78b4d433d1"}],"tempest/common/concurrency.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7655a8691c1006ccbbe91bde7c792ee4e9cc113d","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    processes \u003d []"},{"line_number":40,"context_line":"    for i in range(resource_count):"},{"line_number":41,"context_line":"        p \u003d multiprocessing.Process("},{"line_number":42,"context_line":"            target\u003dwrapped_target,"},{"line_number":43,"context_line":"            args\u003d(i, resource_ids),"},{"line_number":44,"context_line":"            kwargs\u003dkwargs"},{"line_number":45,"context_line":"        )"},{"line_number":46,"context_line":"        processes.append(p)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    # Start all processes"},{"line_number":49,"context_line":"    for p in processes:"}],"source_content_type":"text/x-python","patch_set":3,"id":"0332eb9b_f1365200","line":46,"range":{"start_line":41,"start_character":0,"end_line":46,"end_character":27},"updated":"2026-01-21 19:42:19.000000000","message":"any particular reason that we need process to run concurrent task vs thread?\n\nIMO, we should be using the thread. We can have futurist-\u003eThreadPoolExecutor for better management or threads\n\n- https://github.com/openstack/futurist/blob/c9015a43d0fc5691eb191121bdeee27410926a8a/futurist/_futures.py#L105C7-L105C25","commit_id":"a4a84045b6f469e0885f38d6df77da78b4d433d1"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"4c3dae272f3ca3ffc5af178a323237f2c57e4671","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    processes \u003d []"},{"line_number":40,"context_line":"    for i in range(resource_count):"},{"line_number":41,"context_line":"        p \u003d multiprocessing.Process("},{"line_number":42,"context_line":"            target\u003dwrapped_target,"},{"line_number":43,"context_line":"            args\u003d(i, resource_ids),"},{"line_number":44,"context_line":"            kwargs\u003dkwargs"},{"line_number":45,"context_line":"        )"},{"line_number":46,"context_line":"        processes.append(p)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    # Start all processes"},{"line_number":49,"context_line":"    for p in processes:"}],"source_content_type":"text/x-python","patch_set":3,"id":"88b8bfe6_d1e00b30","line":46,"range":{"start_line":41,"start_character":0,"end_line":46,"end_character":27},"in_reply_to":"0332eb9b_f1365200","updated":"2026-01-22 10:16:10.000000000","message":"The main reason for using process based concurrency is to achieve true parallelism and better isolation. Threads are still limited by the Python GIL, which can reduce effective concurrency and make it harder to expose race conditions.","commit_id":"a4a84045b6f469e0885f38d6df77da78b4d433d1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4901d611091c6dbd07e013659ad76ad3c5f99b24","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    processes \u003d []"},{"line_number":40,"context_line":"    for i in range(resource_count):"},{"line_number":41,"context_line":"        p \u003d multiprocessing.Process("},{"line_number":42,"context_line":"            target\u003dwrapped_target,"},{"line_number":43,"context_line":"            args\u003d(i, resource_ids),"},{"line_number":44,"context_line":"            kwargs\u003dkwargs"},{"line_number":45,"context_line":"        )"},{"line_number":46,"context_line":"        processes.append(p)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    # Start all processes"},{"line_number":49,"context_line":"    for p in processes:"}],"source_content_type":"text/x-python","patch_set":3,"id":"0691f511_6ab6ffb7","line":46,"range":{"start_line":41,"start_character":0,"end_line":46,"end_character":27},"in_reply_to":"88b8bfe6_d1e00b30","updated":"2026-01-22 18:54:55.000000000","message":"yeah, GIL is the thing, python3.13 can disable the GIL but anyways I think agree on process because of GIL.","commit_id":"a4a84045b6f469e0885f38d6df77da78b4d433d1"}]}
