)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f015ce790fe4d48e8cd77f4ab011e2d54a5cd704","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ca9f0483_2a6c353a","updated":"2026-01-09 21:13:34.000000000","message":"It\u0027s been more than a year to for anyone to raise objections -- let\u0027s merge it.","commit_id":"49b794af0ec9024bfecf03d745e4aafedb1c7af7"}],"src/erasurecode.c":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"742e4e5d59ece6fa131881a26ce1306c7c129ef0","unresolved":true,"context_lines":[{"line_number":347,"context_line":"    int rc \u003d rwlock_rdlock(\u0026active_instances_rwlock);"},{"line_number":348,"context_line":"    if (rc) {"},{"line_number":349,"context_line":"        /* Should just be EDEADLOCK */"},{"line_number":350,"context_line":"        return rc \u003c 0 ? rc : -rc;"},{"line_number":351,"context_line":"    }"},{"line_number":352,"context_line":"    ec_backend_t instance \u003d liberasurecode_backend_instance_get_by_desc(desc);"},{"line_number":353,"context_line":"    if (NULL \u003d\u003d instance) {"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"0cae580d_a816bbc8","line":350,"updated":"2024-10-11 16:03:25.000000000","message":"A lot of these, I wonder if we\u0027d be happier just saying `return rc`.","commit_id":"1c766a4cd0e3f049e599dc8e5459347fe40c6518"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a65d24733b4cfaf44449966260b0cbb4f682bac8","unresolved":false,"context_lines":[{"line_number":347,"context_line":"    int rc \u003d rwlock_rdlock(\u0026active_instances_rwlock);"},{"line_number":348,"context_line":"    if (rc) {"},{"line_number":349,"context_line":"        /* Should just be EDEADLOCK */"},{"line_number":350,"context_line":"        return rc \u003c 0 ? rc : -rc;"},{"line_number":351,"context_line":"    }"},{"line_number":352,"context_line":"    ec_backend_t instance \u003d liberasurecode_backend_instance_get_by_desc(desc);"},{"line_number":353,"context_line":"    if (NULL \u003d\u003d instance) {"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"dbce0f8b_d10e9a1c","line":350,"in_reply_to":"0cae580d_a816bbc8","updated":"2024-10-15 21:01:31.000000000","message":"Done","commit_id":"1c766a4cd0e3f049e599dc8e5459347fe40c6518"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"742e4e5d59ece6fa131881a26ce1306c7c129ef0","unresolved":true,"context_lines":[{"line_number":980,"context_line":"          fragments in fragments_to_reconstruct"},{"line_number":981,"context_line":" *"},{"line_number":982,"context_line":" * @return a list of lists (bitmaps) of indexes to rebuild data"},{"line_number":983,"context_line":" *        from (in \u0027fragments_needed\u0027)"},{"line_number":984,"context_line":" */"},{"line_number":985,"context_line":"int liberasurecode_fragments_needed(int desc,"},{"line_number":986,"context_line":"                                    int *fragments_to_reconstruct,"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"a25269a3_44cf52f2","line":983,"updated":"2024-10-11 16:03:25.000000000","message":"Off-topic: this docstring needs updating. Near as I can tell, this returns 0 on success, (often negative) error code on error. The passed-in fragments_needed gets populated for the successful return.","commit_id":"1c766a4cd0e3f049e599dc8e5459347fe40c6518"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a65d24733b4cfaf44449966260b0cbb4f682bac8","unresolved":false,"context_lines":[{"line_number":980,"context_line":"          fragments in fragments_to_reconstruct"},{"line_number":981,"context_line":" *"},{"line_number":982,"context_line":" * @return a list of lists (bitmaps) of indexes to rebuild data"},{"line_number":983,"context_line":" *        from (in \u0027fragments_needed\u0027)"},{"line_number":984,"context_line":" */"},{"line_number":985,"context_line":"int liberasurecode_fragments_needed(int desc,"},{"line_number":986,"context_line":"                                    int *fragments_to_reconstruct,"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"7908468a_41139b6f","line":983,"in_reply_to":"a25269a3_44cf52f2","updated":"2024-10-15 21:01:31.000000000","message":"Done","commit_id":"1c766a4cd0e3f049e599dc8e5459347fe40c6518"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"742e4e5d59ece6fa131881a26ce1306c7c129ef0","unresolved":true,"context_lines":[{"line_number":1304,"context_line":"    int rc \u003d rwlock_rdlock(\u0026active_instances_rwlock);"},{"line_number":1305,"context_line":"    if (rc) {"},{"line_number":1306,"context_line":"        /* Should just be EDEADLOCK */"},{"line_number":1307,"context_line":"        return rc \u003c 0 ? rc : -rc;"},{"line_number":1308,"context_line":"    }"},{"line_number":1309,"context_line":"    ec_backend_t instance \u003d liberasurecode_backend_instance_get_by_desc(desc);"},{"line_number":1310,"context_line":"    if (NULL \u003d\u003d instance) {"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"ca535c58_7ba37396","line":1307,"updated":"2024-10-11 16:03:25.000000000","message":"So *this one* should probably stay like this -- negative return indicates error.","commit_id":"1c766a4cd0e3f049e599dc8e5459347fe40c6518"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a65d24733b4cfaf44449966260b0cbb4f682bac8","unresolved":false,"context_lines":[{"line_number":1304,"context_line":"    int rc \u003d rwlock_rdlock(\u0026active_instances_rwlock);"},{"line_number":1305,"context_line":"    if (rc) {"},{"line_number":1306,"context_line":"        /* Should just be EDEADLOCK */"},{"line_number":1307,"context_line":"        return rc \u003c 0 ? rc : -rc;"},{"line_number":1308,"context_line":"    }"},{"line_number":1309,"context_line":"    ec_backend_t instance \u003d liberasurecode_backend_instance_get_by_desc(desc);"},{"line_number":1310,"context_line":"    if (NULL \u003d\u003d instance) {"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"62304e04_2e2a02d1","line":1307,"in_reply_to":"ca535c58_7ba37396","updated":"2024-10-15 21:01:31.000000000","message":"Done","commit_id":"1c766a4cd0e3f049e599dc8e5459347fe40c6518"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"742e4e5d59ece6fa131881a26ce1306c7c129ef0","unresolved":true,"context_lines":[{"line_number":1341,"context_line":"    int rc \u003d rwlock_rdlock(\u0026active_instances_rwlock);"},{"line_number":1342,"context_line":"    if (rc) {"},{"line_number":1343,"context_line":"        /* Should just be EDEADLOCK */"},{"line_number":1344,"context_line":"        return rc \u003c 0 ? rc : -rc;"},{"line_number":1345,"context_line":"    }"},{"line_number":1346,"context_line":"    ec_backend_t instance \u003d liberasurecode_backend_instance_get_by_desc(desc);"},{"line_number":1347,"context_line":"    // TODO: Create a common function to calculate fragment size also for preprocessing"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"7e2f3af1_a9232792","line":1344,"updated":"2024-10-11 16:03:25.000000000","message":"And here.","commit_id":"1c766a4cd0e3f049e599dc8e5459347fe40c6518"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a65d24733b4cfaf44449966260b0cbb4f682bac8","unresolved":false,"context_lines":[{"line_number":1341,"context_line":"    int rc \u003d rwlock_rdlock(\u0026active_instances_rwlock);"},{"line_number":1342,"context_line":"    if (rc) {"},{"line_number":1343,"context_line":"        /* Should just be EDEADLOCK */"},{"line_number":1344,"context_line":"        return rc \u003c 0 ? rc : -rc;"},{"line_number":1345,"context_line":"    }"},{"line_number":1346,"context_line":"    ec_backend_t instance \u003d liberasurecode_backend_instance_get_by_desc(desc);"},{"line_number":1347,"context_line":"    // TODO: Create a common function to calculate fragment size also for preprocessing"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"f286fe1d_3a1698be","line":1344,"in_reply_to":"7e2f3af1_a9232792","updated":"2024-10-15 21:01:31.000000000","message":"Done","commit_id":"1c766a4cd0e3f049e599dc8e5459347fe40c6518"}]}
