)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1004808,"name":"Ray Cardillo","email":"ray.cardillo@couchbase.com","username":"raycardillo","avatars":[{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4a6090bff4d90773f276944d0ed088e6ed2eac87","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"9de50774_3ec10644","updated":"2023-05-02 14:05:52.000000000","message":"Verbiage updates as discussed.","commit_id":"137b47e191692041bf80833d22c0905a74a7d1fd"},{"author":{"_account_id":1004808,"name":"Ray Cardillo","email":"ray.cardillo@couchbase.com","username":"raycardillo","avatars":[{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"2ce36104c56e12a847c24edc37373295db27f332","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"b0089d52_f2e4dbcc","updated":"2023-05-03 17:57:46.000000000","message":"Just a few small typos to correct, but I like this much better.","commit_id":"e8c5290b82f94506f800f775010829e499c81858"},{"author":{"_account_id":1004808,"name":"Ray Cardillo","email":"ray.cardillo@couchbase.com","username":"raycardillo","avatars":[{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"87407cd3b01137a0c8fccfd81bd086c7376bded2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"a6c1d0f4_a86555d0","updated":"2023-05-04 20:23:17.000000000","message":"LGTM","commit_id":"a3ed6a0d2f5a1c908cf6ea0c9326016da401b30b"}],"doc/example/threads.c":[{"author":{"_account_id":1004808,"name":"Ray Cardillo","email":"ray.cardillo@couchbase.com","username":"raycardillo","avatars":[{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4a6090bff4d90773f276944d0ed088e6ed2eac87","unresolved":true,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    my_CTX ctx;"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    // multiple threads with mutex"},{"line_number":165,"context_line":"    pthread_mutex_init(\u0026ctx.mutex, NULL);"},{"line_number":166,"context_line":"    {"},{"line_number":167,"context_line":"        lcb_CREATEOPTS *options \u003d NULL;"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"53bfde1b_ee208d40","line":164,"updated":"2023-05-02 14:05:52.000000000","message":"Add a prefix header here to distinguish this strategy from the other one below. Something like \"Example 1: ...\" and then some brief description. Something like \"This strategy will be slower due to blocking but allows you to use one instance so it may be useful if doing other CPU work in parallel.","commit_id":"137b47e191692041bf80833d22c0905a74a7d1fd"},{"author":{"_account_id":1000201,"name":"Sergey Avseyev","email":"sergey.avseyev@gmail.com","username":"avsej","avatars":[{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"d8eb88af424057124045ef84f5c2b3701c57415d","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    my_CTX ctx;"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    // multiple threads with mutex"},{"line_number":165,"context_line":"    pthread_mutex_init(\u0026ctx.mutex, NULL);"},{"line_number":166,"context_line":"    {"},{"line_number":167,"context_line":"        lcb_CREATEOPTS *options \u003d NULL;"}],"source_content_type":"text/x-csrc","patch_set":15,"id":"3aba97d2_245a9366","line":164,"in_reply_to":"53bfde1b_ee208d40","updated":"2023-05-03 14:41:35.000000000","message":"Done","commit_id":"137b47e191692041bf80833d22c0905a74a7d1fd"},{"author":{"_account_id":1004808,"name":"Ray Cardillo","email":"ray.cardillo@couchbase.com","username":"raycardillo","avatars":[{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4a6090bff4d90773f276944d0ed088e6ed2eac87","unresolved":true,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    lcb_destroy(ctx.instance);"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    // multiple threads with independent instances"},{"line_number":189,"context_line":"    lcb_INSTANCE *instances[number_of_threads];"},{"line_number":190,"context_line":"    my_LOGGER loggers[number_of_threads];"},{"line_number":191,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":15,"id":"141cc1ac_f4fb52d7","line":188,"updated":"2023-05-02 14:05:52.000000000","message":"Add a prefix header here to distinguish this strategy from the other one above. Something like \"Example 2: ...\" and then some brief description. Something like: \"This strategy allows multiple instances to be used in parallel, but you must be careful not to allow use of each instance from other threads. This may be useful if your main focus is maximum throughput. It will consume more resources, and the upper limit will ultimately be limited by CPU, memory, and network IO.\"","commit_id":"137b47e191692041bf80833d22c0905a74a7d1fd"},{"author":{"_account_id":1000201,"name":"Sergey Avseyev","email":"sergey.avseyev@gmail.com","username":"avsej","avatars":[{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"d8eb88af424057124045ef84f5c2b3701c57415d","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    lcb_destroy(ctx.instance);"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    // multiple threads with independent instances"},{"line_number":189,"context_line":"    lcb_INSTANCE *instances[number_of_threads];"},{"line_number":190,"context_line":"    my_LOGGER loggers[number_of_threads];"},{"line_number":191,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":15,"id":"bde4fe72_0fd682ae","line":188,"in_reply_to":"141cc1ac_f4fb52d7","updated":"2023-05-03 14:41:35.000000000","message":"Done","commit_id":"137b47e191692041bf80833d22c0905a74a7d1fd"}],"doc/mainpage.h":[{"author":{"_account_id":1004808,"name":"Ray Cardillo","email":"ray.cardillo@couchbase.com","username":"raycardillo","avatars":[{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4a6090bff4d90773f276944d0ed088e6ed2eac87","unresolved":true,"context_lines":[{"line_number":123,"context_line":"/**"},{"line_number":124,"context_line":" * @page lcb_thrsafe Thread Safety"},{"line_number":125,"context_line":" *"},{"line_number":126,"context_line":" * The library uses no internal locking and is thus not safe to be used"},{"line_number":127,"context_line":" * concurrently from multiple threads. As the library contains no globals"},{"line_number":128,"context_line":" * you may call into the library from multiple threads so long as the same data"},{"line_number":129,"context_line":" * structure (specifically, the same `lcb_INSTANCE *`) is not used."}],"source_content_type":"text/x-csrc","patch_set":15,"id":"ee9a0488_94933b16","line":126,"updated":"2023-05-02 14:05:52.000000000","message":"Suggesting better verbiage here as discussed:\n\nThis library is not designed to be thread-safe. However, it should be safe to use one `lcb_INSTANCE *` per thread, with some caveats and careful consideration.\n\n1. You must be certain that the `lcb_INSTANCE` is not shared with other threads. For performance, there are no internal locks or other thread safety mechanisms to protect internal data structures.\n2. Also for performance reasons, the default logger is not thread-safe, and is not bound to a single `lcb_INSTANCE`. Therefore, a multi-threaded application must also override the logger with a thread-safe version or use a separate logger for each instance (see examples below).\n3. Likewise, any other shared instances that are registered with the library (e.g., `lcb_io_opt_t`) must also be protected in a similar manner. Such instances must either be protected and made thread-safe internally or a new instance per `lcb_INSTANCE` can be provided.\n\nVerification and diagnostics should be done using a tool like `valgrind` ... [and provide some useful tips]","commit_id":"137b47e191692041bf80833d22c0905a74a7d1fd"},{"author":{"_account_id":1000201,"name":"Sergey Avseyev","email":"sergey.avseyev@gmail.com","username":"avsej","avatars":[{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"d8eb88af424057124045ef84f5c2b3701c57415d","unresolved":false,"context_lines":[{"line_number":123,"context_line":"/**"},{"line_number":124,"context_line":" * @page lcb_thrsafe Thread Safety"},{"line_number":125,"context_line":" *"},{"line_number":126,"context_line":" * The library uses no internal locking and is thus not safe to be used"},{"line_number":127,"context_line":" * concurrently from multiple threads. As the library contains no globals"},{"line_number":128,"context_line":" * you may call into the library from multiple threads so long as the same data"},{"line_number":129,"context_line":" * structure (specifically, the same `lcb_INSTANCE *`) is not used."}],"source_content_type":"text/x-csrc","patch_set":15,"id":"950aeded_a3560686","line":126,"in_reply_to":"ee9a0488_94933b16","updated":"2023-05-03 14:41:35.000000000","message":"Done","commit_id":"137b47e191692041bf80833d22c0905a74a7d1fd"},{"author":{"_account_id":1004808,"name":"Ray Cardillo","email":"ray.cardillo@couchbase.com","username":"raycardillo","avatars":[{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"2ce36104c56e12a847c24edc37373295db27f332","unresolved":true,"context_lines":[{"line_number":142,"context_line":" *    protected in a similar manner. Such instances must either be protected and made thread-safe internally or a new"},{"line_number":143,"context_line":" *    instance per `lcb_INSTANCE` can be provided."},{"line_number":144,"context_line":" *"},{"line_number":145,"context_line":" * As we any multi-threaded application extra testing and analysis should be done using a tool like"},{"line_number":146,"context_line":" * \u003ca href\u003d\"https://valgrind.org/docs/manual/drd-manual.html\"\u003eValgrind/DRD\u003c/a\u003e,"},{"line_number":147,"context_line":" * \u003ca href\u003d\"https://clang.llvm.org/docs/ThreadSanitizer.html\"\u003eThreadSanitizer\u003c/a\u003e or similar."},{"line_number":148,"context_line":" *"}],"source_content_type":"text/x-csrc","patch_set":16,"id":"ed17611b_9df4fe04","line":145,"updated":"2023-05-03 17:57:46.000000000","message":"typo, probably should be: \"As with any\"","commit_id":"e8c5290b82f94506f800f775010829e499c81858"},{"author":{"_account_id":1000201,"name":"Sergey Avseyev","email":"sergey.avseyev@gmail.com","username":"avsej","avatars":[{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ed3ec9bdfcbec86c04f8d9fa31e71e0df8ab1236","unresolved":false,"context_lines":[{"line_number":142,"context_line":" *    protected in a similar manner. Such instances must either be protected and made thread-safe internally or a new"},{"line_number":143,"context_line":" *    instance per `lcb_INSTANCE` can be provided."},{"line_number":144,"context_line":" *"},{"line_number":145,"context_line":" * As we any multi-threaded application extra testing and analysis should be done using a tool like"},{"line_number":146,"context_line":" * \u003ca href\u003d\"https://valgrind.org/docs/manual/drd-manual.html\"\u003eValgrind/DRD\u003c/a\u003e,"},{"line_number":147,"context_line":" * \u003ca href\u003d\"https://clang.llvm.org/docs/ThreadSanitizer.html\"\u003eThreadSanitizer\u003c/a\u003e or similar."},{"line_number":148,"context_line":" *"}],"source_content_type":"text/x-csrc","patch_set":16,"id":"5940b1e7_de77a405","line":145,"in_reply_to":"ed17611b_9df4fe04","updated":"2023-05-03 18:49:54.000000000","message":"Done","commit_id":"e8c5290b82f94506f800f775010829e499c81858"}],"example/threads-shared/threads-shared.c":[{"author":{"_account_id":1004808,"name":"Ray Cardillo","email":"ray.cardillo@couchbase.com","username":"raycardillo","avatars":[{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/d1ebcd4878b5251a41adab2d70795d69.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"2ce36104c56e12a847c24edc37373295db27f332","unresolved":true,"context_lines":[{"line_number":76,"context_line":" * 2. if the application does not have any other work to do, threads will compete for the connections, and"},{"line_number":77,"context_line":" *    the bandwidth will be lower than expected."},{"line_number":78,"context_line":" *"},{"line_number":79,"context_line":" * As any multi-threaded application, it requires extra testing and analysis to meet all performance and correctness"},{"line_number":80,"context_line":" * requirements."},{"line_number":81,"context_line":" *"},{"line_number":82,"context_line":" * See threads-private.c for the alternative approach."}],"source_content_type":"text/x-csrc","patch_set":16,"id":"dae0543e_a42e9718","line":79,"updated":"2023-05-03 17:57:46.000000000","message":"\"As with any\"","commit_id":"e8c5290b82f94506f800f775010829e499c81858"},{"author":{"_account_id":1000201,"name":"Sergey Avseyev","email":"sergey.avseyev@gmail.com","username":"avsej","avatars":[{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ed3ec9bdfcbec86c04f8d9fa31e71e0df8ab1236","unresolved":false,"context_lines":[{"line_number":76,"context_line":" * 2. if the application does not have any other work to do, threads will compete for the connections, and"},{"line_number":77,"context_line":" *    the bandwidth will be lower than expected."},{"line_number":78,"context_line":" *"},{"line_number":79,"context_line":" * As any multi-threaded application, it requires extra testing and analysis to meet all performance and correctness"},{"line_number":80,"context_line":" * requirements."},{"line_number":81,"context_line":" *"},{"line_number":82,"context_line":" * See threads-private.c for the alternative approach."}],"source_content_type":"text/x-csrc","patch_set":16,"id":"ec700374_1312aa0e","line":79,"in_reply_to":"dae0543e_a42e9718","updated":"2023-05-03 18:49:54.000000000","message":"Done","commit_id":"e8c5290b82f94506f800f775010829e499c81858"}],"src/capi/cmd_store.hh":[{"author":{"_account_id":1000377,"name":"Brett Lawson","email":"brett19@gmail.com","username":"brett19","avatars":[{"url":"https://www.gravatar.com/avatar/e7d7c9c704693cb552c9dc9d9e4a27d1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/e7d7c9c704693cb552c9dc9d9e4a27d1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/e7d7c9c704693cb552c9dc9d9e4a27d1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/e7d7c9c704693cb552c9dc9d9e4a27d1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"dbb7ab289bb220e6d248082ba92da2f31c6db38e","unresolved":true,"context_lines":[{"line_number":37,"context_line":"struct lcb_CMDSTORE_ {"},{"line_number":38,"context_line":"    const std::string \u0026operation_name() const"},{"line_number":39,"context_line":"    {"},{"line_number":40,"context_line":"        static thread_local std::map\u003cint, std::string\u003e names{"},{"line_number":41,"context_line":"            {LCB_STORE_UPSERT, LCBTRACE_OP_UPSERT}, {LCB_STORE_REPLACE, LCBTRACE_OP_REPLACE},"},{"line_number":42,"context_line":"            {LCB_STORE_APPEND, LCBTRACE_OP_APPEND}, {LCB_STORE_PREPEND, LCBTRACE_OP_PREPEND},"},{"line_number":43,"context_line":"            {LCB_STORE_INSERT, LCBTRACE_OP_INSERT},"}],"source_content_type":"text/x-c++src","patch_set":16,"id":"c2dc4a4f_7958a511","line":40,"updated":"2023-05-03 17:51:52.000000000","message":"This shouldn\u0027t need to be thread-local as it\u0027s constant?","commit_id":"e8c5290b82f94506f800f775010829e499c81858"},{"author":{"_account_id":1000201,"name":"Sergey Avseyev","email":"sergey.avseyev@gmail.com","username":"avsej","avatars":[{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/dd70f9d8cc5f9ee488d68e7a787ba526.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ed3ec9bdfcbec86c04f8d9fa31e71e0df8ab1236","unresolved":false,"context_lines":[{"line_number":37,"context_line":"struct lcb_CMDSTORE_ {"},{"line_number":38,"context_line":"    const std::string \u0026operation_name() const"},{"line_number":39,"context_line":"    {"},{"line_number":40,"context_line":"        static thread_local std::map\u003cint, std::string\u003e names{"},{"line_number":41,"context_line":"            {LCB_STORE_UPSERT, LCBTRACE_OP_UPSERT}, {LCB_STORE_REPLACE, LCBTRACE_OP_REPLACE},"},{"line_number":42,"context_line":"            {LCB_STORE_APPEND, LCBTRACE_OP_APPEND}, {LCB_STORE_PREPEND, LCBTRACE_OP_PREPEND},"},{"line_number":43,"context_line":"            {LCB_STORE_INSERT, LCBTRACE_OP_INSERT},"}],"source_content_type":"text/x-c++src","patch_set":16,"id":"9205fd16_5b03249e","line":40,"in_reply_to":"c2dc4a4f_7958a511","updated":"2023-05-03 18:49:54.000000000","message":"Done","commit_id":"e8c5290b82f94506f800f775010829e499c81858"}]}
