)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1000966,"name":"Dave Rigby","email":"daver@couchbase.com","username":"drigby","avatars":[{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"d3f0caabe56c68a4682bceca104f5a1d225bd6b4","unresolved":true,"context_lines":[{"line_number":16,"context_line":"in HdrHistogram::operator+\u003d()."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"TSAN failure:"},{"line_number":19,"context_line":"WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid\u003d11208)"},{"line_number":20,"context_line":"Cycle in lock order graph: M296533874179548048 (0x000000000000) \u003d\u003e M174936684240544688 (0x000000000000) \u003d\u003e M296533874179548048"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Mutex M174936684240544688 acquired here while holding mutex M296533874179548048 in main thread:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"19509325_3cd9a5db","line":19,"updated":"2020-10-06 11:40:05.000000000","message":"Nit: I normally indent compiler / tool output so it\u0027s more obvious it\u0027s an extract of a log message / will monospace print in GitHub etc.","commit_id":"0647f7fddbd2dbd745f149246b5c66698378c784"},{"author":{"_account_id":1004368,"name":"Richard de Mellow","email":"richard.demellow@couchbase.com","username":"rdemellow","avatars":[{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"c37cda0116296695ffc4ce7a660cbaac20a45cfe","unresolved":true,"context_lines":[{"line_number":16,"context_line":"in HdrHistogram::operator+\u003d()."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"TSAN failure:"},{"line_number":19,"context_line":"WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid\u003d11208)"},{"line_number":20,"context_line":"Cycle in lock order graph: M296533874179548048 (0x000000000000) \u003d\u003e M174936684240544688 (0x000000000000) \u003d\u003e M296533874179548048"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Mutex M174936684240544688 acquired here while holding mutex M296533874179548048 in main thread:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"59abc50f_5b0de4a1","line":19,"in_reply_to":"19509325_3cd9a5db","updated":"2020-10-06 12:44:27.000000000","message":"Thanks for the heads up wasn\u0027t aware of this functionality","commit_id":"0647f7fddbd2dbd745f149246b5c66698378c784"}],"utilities/hdrhistogram.cc":[{"author":{"_account_id":1003828,"name":"James H","email":"james.harrison@couchbase.com","username":"jameseh96","avatars":[{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f9ec646afe19caebe3ea4325f0cea4de507a0f2c","unresolved":true,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"HdrHistogram\u0026 HdrHistogram::operator+\u003d(const HdrHistogram\u0026 other) {"},{"line_number":59,"context_line":"    /*"},{"line_number":60,"context_line":"     * Note: The bellow code takes an exclusive lock on this-\u003ehistogram and a"},{"line_number":61,"context_line":"     * shared lock on other.histogram as other.histogram is a const ref where"},{"line_number":62,"context_line":"     * as this-\u003ehistogram is not. Furthermore, we only need to write to the ptr"},{"line_number":63,"context_line":"     * of this-\u003ehistogram."}],"source_content_type":"text/x-c","patch_set":3,"id":"7a0b69ff_0a13216c","line":60,"range":{"start_line":60,"start_character":17,"end_line":60,"end_character":23},"updated":"2020-10-06 13:50:13.000000000","message":"nit below","commit_id":"c3e3fd734e1a7d0479948d4a7d9aedcb595a1a0a"},{"author":{"_account_id":1003828,"name":"James H","email":"james.harrison@couchbase.com","username":"jameseh96","avatars":[{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a624e006846076e1dfd7a74cb2d308a1e18b0017","unresolved":true,"context_lines":[{"line_number":68,"context_line":"    auto\u0026 thisLock \u003d lockPair.first;"},{"line_number":69,"context_line":"    auto\u0026 otherLock \u003d lockPair.second;"},{"line_number":70,"context_line":"    if (otherLock-\u003eget()-\u003etotal_count \u003e 0) {"},{"line_number":71,"context_line":"        auto thisMin \u003d"},{"line_number":72,"context_line":"                static_cast\u003cuint64_t\u003e(thisLock-\u003eget()-\u003elowest_trackable_value) -"},{"line_number":73,"context_line":"                1;"},{"line_number":74,"context_line":"        auto thisMax \u003d static_cast\u003cuint64_t\u003e("},{"line_number":75,"context_line":"                               thisLock-\u003eget()-\u003ehighest_trackable_value) -"},{"line_number":76,"context_line":"                       1;"},{"line_number":77,"context_line":"        auto thisSigFig \u003d thisLock-\u003eget()-\u003esignificant_figures;"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        auto otherMin \u003d static_cast\u003cuint64_t\u003e("},{"line_number":80,"context_line":"                                otherLock-\u003eget()-\u003elowest_trackable_value) -"},{"line_number":81,"context_line":"                        1;"},{"line_number":82,"context_line":"        auto otherMax \u003d static_cast\u003cuint64_t\u003e("},{"line_number":83,"context_line":"                                otherLock-\u003eget()-\u003ehighest_trackable_value) -"},{"line_number":84,"context_line":"                        1;"},{"line_number":85,"context_line":"        auto otherSigFig \u003d otherLock-\u003eget()-\u003esignificant_figures;"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        // work out if we need to resize the receiving histogram"},{"line_number":88,"context_line":"        uint64_t newMin \u003d thisMin;"}],"source_content_type":"text/x-c","patch_set":6,"id":"1d297e8c_183f581e","line":85,"range":{"start_line":71,"start_character":8,"end_line":85,"end_character":65},"updated":"2020-10-06 15:35:51.000000000","message":"I know this is used instead of the get* methods because we already have the locks, but it does get a bit verbose and magic number-ish.\n\nIt would be nice to push the get* methods down into the Synchronized, though that would probably need to be in a wrapper type (as hdr_histogram heads towards C land) and then it starts to feel like turtles/wrappers all the way down - so maybe not.\n\nAs an alternative, could the get* methods be defined as static methods taking locked ptrs as the arguments? Then the previous\n\n if (other.getMinTrackableValue() \u003c this-\u003egetMinTrackableValue()) {\n   ....\n\ncould be translated\n\n if (getMinTrackableValue(otherLock) \u003c getMinTrackableValue(thisLock)) {\n\nWhich is still a little less nice, but at least it wraps up the casts and -1\u0027s? Fewer places with magic to remember and maintain, less duplication here :shrug:\n\nThough if that leads to more headaches, it may or may not be worth the trade.","commit_id":"226656a3b2b641ae24ca445aeb30586128e1ac6a"},{"author":{"_account_id":1004368,"name":"Richard de Mellow","email":"richard.demellow@couchbase.com","username":"rdemellow","avatars":[{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"16c70916f46e31fbe31c5dd0f0cc22fdff868e93","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    auto\u0026 thisLock \u003d lockPair.first;"},{"line_number":69,"context_line":"    auto\u0026 otherLock \u003d lockPair.second;"},{"line_number":70,"context_line":"    if (otherLock-\u003eget()-\u003etotal_count \u003e 0) {"},{"line_number":71,"context_line":"        auto thisMin \u003d"},{"line_number":72,"context_line":"                static_cast\u003cuint64_t\u003e(thisLock-\u003eget()-\u003elowest_trackable_value) -"},{"line_number":73,"context_line":"                1;"},{"line_number":74,"context_line":"        auto thisMax \u003d static_cast\u003cuint64_t\u003e("},{"line_number":75,"context_line":"                               thisLock-\u003eget()-\u003ehighest_trackable_value) -"},{"line_number":76,"context_line":"                       1;"},{"line_number":77,"context_line":"        auto thisSigFig \u003d thisLock-\u003eget()-\u003esignificant_figures;"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        auto otherMin \u003d static_cast\u003cuint64_t\u003e("},{"line_number":80,"context_line":"                                otherLock-\u003eget()-\u003elowest_trackable_value) -"},{"line_number":81,"context_line":"                        1;"},{"line_number":82,"context_line":"        auto otherMax \u003d static_cast\u003cuint64_t\u003e("},{"line_number":83,"context_line":"                                otherLock-\u003eget()-\u003ehighest_trackable_value) -"},{"line_number":84,"context_line":"                        1;"},{"line_number":85,"context_line":"        auto otherSigFig \u003d otherLock-\u003eget()-\u003esignificant_figures;"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        // work out if we need to resize the receiving histogram"},{"line_number":88,"context_line":"        uint64_t newMin \u003d thisMin;"}],"source_content_type":"text/x-c","patch_set":6,"id":"e401a9e3_98e19e3d","line":85,"range":{"start_line":71,"start_character":8,"end_line":85,"end_character":65},"in_reply_to":"1d297e8c_183f581e","updated":"2020-10-06 15:49:17.000000000","message":"I did investigate this before (see prior revisions) and came to the conclusion that would need to implementing multiple static versions of the methods that take a read lock ref and a write lock ref. So I don\u0027t think it\u0027s worth it, when we only need unlocked veraints for one method.","commit_id":"226656a3b2b641ae24ca445aeb30586128e1ac6a"},{"author":{"_account_id":1003828,"name":"James H","email":"james.harrison@couchbase.com","username":"jameseh96","avatars":[{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"1c795cbdafb9b37719f8b4e839fa892daaa958a4","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    auto\u0026 thisLock \u003d lockPair.first;"},{"line_number":69,"context_line":"    auto\u0026 otherLock \u003d lockPair.second;"},{"line_number":70,"context_line":"    if (otherLock-\u003eget()-\u003etotal_count \u003e 0) {"},{"line_number":71,"context_line":"        auto thisMin \u003d"},{"line_number":72,"context_line":"                static_cast\u003cuint64_t\u003e(thisLock-\u003eget()-\u003elowest_trackable_value) -"},{"line_number":73,"context_line":"                1;"},{"line_number":74,"context_line":"        auto thisMax \u003d static_cast\u003cuint64_t\u003e("},{"line_number":75,"context_line":"                               thisLock-\u003eget()-\u003ehighest_trackable_value) -"},{"line_number":76,"context_line":"                       1;"},{"line_number":77,"context_line":"        auto thisSigFig \u003d thisLock-\u003eget()-\u003esignificant_figures;"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        auto otherMin \u003d static_cast\u003cuint64_t\u003e("},{"line_number":80,"context_line":"                                otherLock-\u003eget()-\u003elowest_trackable_value) -"},{"line_number":81,"context_line":"                        1;"},{"line_number":82,"context_line":"        auto otherMax \u003d static_cast\u003cuint64_t\u003e("},{"line_number":83,"context_line":"                                otherLock-\u003eget()-\u003ehighest_trackable_value) -"},{"line_number":84,"context_line":"                        1;"},{"line_number":85,"context_line":"        auto otherSigFig \u003d otherLock-\u003eget()-\u003esignificant_figures;"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        // work out if we need to resize the receiving histogram"},{"line_number":88,"context_line":"        uint64_t newMin \u003d thisMin;"}],"source_content_type":"text/x-c","patch_set":6,"id":"c87544f3_0d3b16bd","line":85,"range":{"start_line":71,"start_character":8,"end_line":85,"end_character":65},"in_reply_to":"67a35957_050122f6","updated":"2020-10-06 15:54:58.000000000","message":"Or I suppose even\n\nconst hdr_histogram\u0026\n\nand \n\ngetMinTrackableValue(**otherLock)\n\nbut I don\u0027t know if that is too much :P","commit_id":"226656a3b2b641ae24ca445aeb30586128e1ac6a"},{"author":{"_account_id":1004368,"name":"Richard de Mellow","email":"richard.demellow@couchbase.com","username":"rdemellow","avatars":[{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"36f1f16b0108c275a60390ca7ed2f54ecfaa7e1e","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    auto\u0026 thisLock \u003d lockPair.first;"},{"line_number":69,"context_line":"    auto\u0026 otherLock \u003d lockPair.second;"},{"line_number":70,"context_line":"    if (otherLock-\u003eget()-\u003etotal_count \u003e 0) {"},{"line_number":71,"context_line":"        auto thisMin \u003d"},{"line_number":72,"context_line":"                static_cast\u003cuint64_t\u003e(thisLock-\u003eget()-\u003elowest_trackable_value) -"},{"line_number":73,"context_line":"                1;"},{"line_number":74,"context_line":"        auto thisMax \u003d static_cast\u003cuint64_t\u003e("},{"line_number":75,"context_line":"                               thisLock-\u003eget()-\u003ehighest_trackable_value) -"},{"line_number":76,"context_line":"                       1;"},{"line_number":77,"context_line":"        auto thisSigFig \u003d thisLock-\u003eget()-\u003esignificant_figures;"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        auto otherMin \u003d static_cast\u003cuint64_t\u003e("},{"line_number":80,"context_line":"                                otherLock-\u003eget()-\u003elowest_trackable_value) -"},{"line_number":81,"context_line":"                        1;"},{"line_number":82,"context_line":"        auto otherMax \u003d static_cast\u003cuint64_t\u003e("},{"line_number":83,"context_line":"                                otherLock-\u003eget()-\u003ehighest_trackable_value) -"},{"line_number":84,"context_line":"                        1;"},{"line_number":85,"context_line":"        auto otherSigFig \u003d otherLock-\u003eget()-\u003esignificant_figures;"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        // work out if we need to resize the receiving histogram"},{"line_number":88,"context_line":"        uint64_t newMin \u003d thisMin;"}],"source_content_type":"text/x-c","patch_set":6,"id":"aad59c14_f270fa8f","line":85,"range":{"start_line":71,"start_character":8,"end_line":85,"end_character":65},"in_reply_to":"67a35957_050122f6","updated":"2020-10-06 16:18:59.000000000","message":"template could indeed work, think using a const unique_ptr\u003cblah\u003e\u0026 would give much value given it would give context regarding locking.","commit_id":"226656a3b2b641ae24ca445aeb30586128e1ac6a"},{"author":{"_account_id":1003828,"name":"James H","email":"james.harrison@couchbase.com","username":"jameseh96","avatars":[{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ba3d9483e2e8e94c67a1a35b46fe827b540a5831","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    auto\u0026 thisLock \u003d lockPair.first;"},{"line_number":69,"context_line":"    auto\u0026 otherLock \u003d lockPair.second;"},{"line_number":70,"context_line":"    if (otherLock-\u003eget()-\u003etotal_count \u003e 0) {"},{"line_number":71,"context_line":"        auto thisMin \u003d"},{"line_number":72,"context_line":"                static_cast\u003cuint64_t\u003e(thisLock-\u003eget()-\u003elowest_trackable_value) -"},{"line_number":73,"context_line":"                1;"},{"line_number":74,"context_line":"        auto thisMax \u003d static_cast\u003cuint64_t\u003e("},{"line_number":75,"context_line":"                               thisLock-\u003eget()-\u003ehighest_trackable_value) -"},{"line_number":76,"context_line":"                       1;"},{"line_number":77,"context_line":"        auto thisSigFig \u003d thisLock-\u003eget()-\u003esignificant_figures;"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        auto otherMin \u003d static_cast\u003cuint64_t\u003e("},{"line_number":80,"context_line":"                                otherLock-\u003eget()-\u003elowest_trackable_value) -"},{"line_number":81,"context_line":"                        1;"},{"line_number":82,"context_line":"        auto otherMax \u003d static_cast\u003cuint64_t\u003e("},{"line_number":83,"context_line":"                                otherLock-\u003eget()-\u003ehighest_trackable_value) -"},{"line_number":84,"context_line":"                        1;"},{"line_number":85,"context_line":"        auto otherSigFig \u003d otherLock-\u003eget()-\u003esignificant_figures;"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        // work out if we need to resize the receiving histogram"},{"line_number":88,"context_line":"        uint64_t newMin \u003d thisMin;"}],"source_content_type":"text/x-c","patch_set":6,"id":"67a35957_050122f6","line":85,"range":{"start_line":71,"start_character":8,"end_line":85,"end_character":65},"in_reply_to":"e401a9e3_98e19e3d","updated":"2020-10-06 15:52:55.000000000","message":"Fair enough 😊\n\nThough, it could be a template (though that might be overkill), or the parameter could be\n\nconst unique_ptr\u003cblah\u003e\u0026\n\nand the it could be used as\n\n getMinTrackableValue(*otherLock)\n\nBut as you see fit 😊","commit_id":"226656a3b2b641ae24ca445aeb30586128e1ac6a"},{"author":{"_account_id":1003828,"name":"James H","email":"james.harrison@couchbase.com","username":"jameseh96","avatars":[{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"d4393f97602fb73983f4f835687db777564f7c98","unresolved":true,"context_lines":[{"line_number":73,"context_line":"        auto otherSigFig \u003d getSigFigAccuracy(otherLock);"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        // work out if we need to resize the receiving histogram"},{"line_number":76,"context_line":"        auto newMin \u003d getMinTrackableValue\u003cWHistoLockedPtr\u003e(thisLock);"},{"line_number":77,"context_line":"        auto newMax \u003d getMaxTrackableValue\u003cWHistoLockedPtr\u003e(thisLock);"},{"line_number":78,"context_line":"        auto newSigfig \u003d getSigFigAccuracy\u003cWHistoLockedPtr\u003e(thisLock);"},{"line_number":79,"context_line":"        bool resize \u003d false;"}],"source_content_type":"text/x-c","patch_set":7,"id":"7191ea03_ca35b825","line":76,"range":{"start_line":76,"start_character":42,"end_line":76,"end_character":59},"updated":"2020-10-06 16:23:52.000000000","message":"This template parameter should be deducible from the argument?\n\nSo, just\n\ngetMinTrackableValue(thisLock);\n\nshould be sufficient?","commit_id":"c60f6aa8867e74d5688b6b445ac28dd103f1566e"},{"author":{"_account_id":1004368,"name":"Richard de Mellow","email":"richard.demellow@couchbase.com","username":"rdemellow","avatars":[{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"32a37e8e286279d79506cceb0f95fa11e5693fdc","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        auto otherSigFig \u003d getSigFigAccuracy(otherLock);"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        // work out if we need to resize the receiving histogram"},{"line_number":76,"context_line":"        auto newMin \u003d getMinTrackableValue\u003cWHistoLockedPtr\u003e(thisLock);"},{"line_number":77,"context_line":"        auto newMax \u003d getMaxTrackableValue\u003cWHistoLockedPtr\u003e(thisLock);"},{"line_number":78,"context_line":"        auto newSigfig \u003d getSigFigAccuracy\u003cWHistoLockedPtr\u003e(thisLock);"},{"line_number":79,"context_line":"        bool resize \u003d false;"}],"source_content_type":"text/x-c","patch_set":7,"id":"6950cc45_e8de47be","line":76,"range":{"start_line":76,"start_character":42,"end_line":76,"end_character":59},"in_reply_to":"7191ea03_ca35b825","updated":"2020-10-06 16:28:48.000000000","message":"Done","commit_id":"c60f6aa8867e74d5688b6b445ac28dd103f1566e"},{"author":{"_account_id":1000966,"name":"Dave Rigby","email":"daver@couchbase.com","username":"drigby","avatars":[{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"9ab5e49a76d884087240c886c31f6e66aa77f979","unresolved":true,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"HdrHistogram\u0026 HdrHistogram::operator+\u003d(const HdrHistogram\u0026 other) {"},{"line_number":59,"context_line":"    /*"},{"line_number":60,"context_line":"     * Note: The bellow code takes an exclusive lock on this-\u003ehistogram and a"},{"line_number":61,"context_line":"     * shared lock on other.histogram as other.histogram is a const ref where"},{"line_number":62,"context_line":"     * as this-\u003ehistogram is not. Furthermore, we only need to write to the ptr"},{"line_number":63,"context_line":"     * of this-\u003ehistogram."}],"source_content_type":"text/x-c","patch_set":8,"id":"6739246a_361af0b6","line":60,"updated":"2020-10-07 09:00:50.000000000","message":"bellow -\u003e below.","commit_id":"61b49aa4277ed7ccdfcd94dc33293fd8da3bfd0c"},{"author":{"_account_id":1004368,"name":"Richard de Mellow","email":"richard.demellow@couchbase.com","username":"rdemellow","avatars":[{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"6845962516ce720a69702b915a9598b986b319f1","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"HdrHistogram\u0026 HdrHistogram::operator+\u003d(const HdrHistogram\u0026 other) {"},{"line_number":59,"context_line":"    /*"},{"line_number":60,"context_line":"     * Note: The bellow code takes an exclusive lock on this-\u003ehistogram and a"},{"line_number":61,"context_line":"     * shared lock on other.histogram as other.histogram is a const ref where"},{"line_number":62,"context_line":"     * as this-\u003ehistogram is not. Furthermore, we only need to write to the ptr"},{"line_number":63,"context_line":"     * of this-\u003ehistogram."}],"source_content_type":"text/x-c","patch_set":8,"id":"94bf8eaa_822ae53c","line":60,"in_reply_to":"6739246a_361af0b6","updated":"2020-10-07 10:02:31.000000000","message":"Done","commit_id":"61b49aa4277ed7ccdfcd94dc33293fd8da3bfd0c"},{"author":{"_account_id":1000966,"name":"Dave Rigby","email":"daver@couchbase.com","username":"drigby","avatars":[{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"9ab5e49a76d884087240c886c31f6e66aa77f979","unresolved":true,"context_lines":[{"line_number":58,"context_line":"HdrHistogram\u0026 HdrHistogram::operator+\u003d(const HdrHistogram\u0026 other) {"},{"line_number":59,"context_line":"    /*"},{"line_number":60,"context_line":"     * Note: The bellow code takes an exclusive lock on this-\u003ehistogram and a"},{"line_number":61,"context_line":"     * shared lock on other.histogram as other.histogram is a const ref where"},{"line_number":62,"context_line":"     * as this-\u003ehistogram is not. Furthermore, we only need to write to the ptr"},{"line_number":63,"context_line":"     * of this-\u003ehistogram."},{"line_number":64,"context_line":"     */"}],"source_content_type":"text/x-c","patch_set":8,"id":"23ff67f8_d70959be","line":61,"updated":"2020-10-07 09:00:50.000000000","message":"Where in the code below does it take shared on one and exclusive on the other?","commit_id":"61b49aa4277ed7ccdfcd94dc33293fd8da3bfd0c"},{"author":{"_account_id":1004368,"name":"Richard de Mellow","email":"richard.demellow@couchbase.com","username":"rdemellow","avatars":[{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"1b3aff1192712f312fd0fcc9abcab4d222971003","unresolved":true,"context_lines":[{"line_number":58,"context_line":"HdrHistogram\u0026 HdrHistogram::operator+\u003d(const HdrHistogram\u0026 other) {"},{"line_number":59,"context_line":"    /*"},{"line_number":60,"context_line":"     * Note: The bellow code takes an exclusive lock on this-\u003ehistogram and a"},{"line_number":61,"context_line":"     * shared lock on other.histogram as other.histogram is a const ref where"},{"line_number":62,"context_line":"     * as this-\u003ehistogram is not. Furthermore, we only need to write to the ptr"},{"line_number":63,"context_line":"     * of this-\u003ehistogram."},{"line_number":64,"context_line":"     */"}],"source_content_type":"text/x-c","patch_set":8,"id":"ac847cec_34622aa0","line":61,"in_reply_to":"23ff67f8_d70959be","updated":"2020-10-07 09:10:28.000000000","message":"The folly::acquireLockedPair() takes a shared lock as it\u0027s a const ref. The documentation here dosn\u0027t spescify it https://github.com/facebook/folly/blob/master/folly/docs/Synchronized.md#acquirelocked, however when looking at the source code we see the follow \n\"For parameters that are const and support shared locks, a read lock is\n * acquired.  Otherwise an exclusive lock is acquired.\"\n\n\n/**\n * Acquire locks for multiple Synchronized\u003cT\u003e objects, in a deadlock-safe\n * manner.\n *\n * The locks are acquired in order from lowest address to highest address.\n * (Note that this is not necessarily the same algorithm used by std::lock().)\n * For parameters that are const and support shared locks, a read lock is\n * acquired.  Otherwise an exclusive lock is acquired.\n *\n * use lock() with folly::wlock(), folly::rlock() and folly::ulock() for\n * arbitrary locking without causing a deadlock (as much as possible), with the\n * same effects as std::lock()\n */\ntemplate \u003cclass Sync1, class Sync2\u003e\nstd::tuple\u003cdetail::LockedPtrType\u003cSync1\u003e, detail::LockedPtrType\u003cSync2\u003e\u003e\nacquireLocked(Sync1\u0026 l1, Sync2\u0026 l2) {\n  if (static_cast\u003cconst void*\u003e(\u0026l1) \u003c static_cast\u003cconst void*\u003e(\u0026l2)) {\n    auto p1 \u003d l1.contextualLock();\n    auto p2 \u003d l2.contextualLock();\n    return std::make_tuple(std::move(p1), std::move(p2));\n  } else {\n    auto p2 \u003d l2.contextualLock();\n    auto p1 \u003d l1.contextualLock();\n    return std::make_tuple(std::move(p1), std::move(p2));\n  }\n}","commit_id":"61b49aa4277ed7ccdfcd94dc33293fd8da3bfd0c"},{"author":{"_account_id":1004368,"name":"Richard de Mellow","email":"richard.demellow@couchbase.com","username":"rdemellow","avatars":[{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"6845962516ce720a69702b915a9598b986b319f1","unresolved":false,"context_lines":[{"line_number":58,"context_line":"HdrHistogram\u0026 HdrHistogram::operator+\u003d(const HdrHistogram\u0026 other) {"},{"line_number":59,"context_line":"    /*"},{"line_number":60,"context_line":"     * Note: The bellow code takes an exclusive lock on this-\u003ehistogram and a"},{"line_number":61,"context_line":"     * shared lock on other.histogram as other.histogram is a const ref where"},{"line_number":62,"context_line":"     * as this-\u003ehistogram is not. Furthermore, we only need to write to the ptr"},{"line_number":63,"context_line":"     * of this-\u003ehistogram."},{"line_number":64,"context_line":"     */"}],"source_content_type":"text/x-c","patch_set":8,"id":"8d1b84d1_d7e426e6","line":61,"in_reply_to":"91af6f01_4543beae","updated":"2020-10-07 10:02:31.000000000","message":"Done","commit_id":"61b49aa4277ed7ccdfcd94dc33293fd8da3bfd0c"},{"author":{"_account_id":1000966,"name":"Dave Rigby","email":"daver@couchbase.com","username":"drigby","avatars":[{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"9a7df81cb4b2147a70019fc6c5c27f07d1aba153","unresolved":true,"context_lines":[{"line_number":58,"context_line":"HdrHistogram\u0026 HdrHistogram::operator+\u003d(const HdrHistogram\u0026 other) {"},{"line_number":59,"context_line":"    /*"},{"line_number":60,"context_line":"     * Note: The bellow code takes an exclusive lock on this-\u003ehistogram and a"},{"line_number":61,"context_line":"     * shared lock on other.histogram as other.histogram is a const ref where"},{"line_number":62,"context_line":"     * as this-\u003ehistogram is not. Furthermore, we only need to write to the ptr"},{"line_number":63,"context_line":"     * of this-\u003ehistogram."},{"line_number":64,"context_line":"     */"}],"source_content_type":"text/x-c","patch_set":8,"id":"91af6f01_4543beae","line":61,"in_reply_to":"ac847cec_34622aa0","updated":"2020-10-07 09:18:44.000000000","message":"Thanks - wasn\u0027t obvious to me!\n\nMight be worth being a little more explicit - i.e. \"`acquireLockedPair` acquires `other` in shared mode given it\u0027s passed as const\u0026 to this function\"?","commit_id":"61b49aa4277ed7ccdfcd94dc33293fd8da3bfd0c"}],"utilities/hdrhistogram.h":[{"author":{"_account_id":1000966,"name":"Dave Rigby","email":"daver@couchbase.com","username":"drigby","avatars":[{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"d3f0caabe56c68a4682bceca104f5a1d225bd6b4","unresolved":true,"context_lines":[{"line_number":362,"context_line":"    double getMean() const;"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"private:"},{"line_number":365,"context_line":"    static uint64_t getMinTrackableValue_UNLOCKED("},{"line_number":366,"context_line":"            struct hdr_histogram* histoPtr) {"},{"line_number":367,"context_line":"        // We subtract one from the lowest value as we have added a one offset"},{"line_number":368,"context_line":"        // as the underlying hdr_histogram cannot store 0 and"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"7f53a8e4_a348c6be","line":365,"updated":"2020-10-06 11:40:05.000000000","message":"Not really keen these _UNLOCKED variants in new code - we really shouldn\u0027t need something like that. \n\nIf you really need to do this, at least have these take a ptr to the Synchronized locked type, to \"prove\" that the type is locked.","commit_id":"0647f7fddbd2dbd745f149246b5c66698378c784"},{"author":{"_account_id":1004368,"name":"Richard de Mellow","email":"richard.demellow@couchbase.com","username":"rdemellow","avatars":[{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"c37cda0116296695ffc4ce7a660cbaac20a45cfe","unresolved":false,"context_lines":[{"line_number":362,"context_line":"    double getMean() const;"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"private:"},{"line_number":365,"context_line":"    static uint64_t getMinTrackableValue_UNLOCKED("},{"line_number":366,"context_line":"            struct hdr_histogram* histoPtr) {"},{"line_number":367,"context_line":"        // We subtract one from the lowest value as we have added a one offset"},{"line_number":368,"context_line":"        // as the underlying hdr_histogram cannot store 0 and"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"6e303b6f_c38eb474","line":365,"in_reply_to":"7f53a8e4_a348c6be","updated":"2020-10-06 12:44:27.000000000","message":"Done","commit_id":"0647f7fddbd2dbd745f149246b5c66698378c784"},{"author":{"_account_id":1003828,"name":"James H","email":"james.harrison@couchbase.com","username":"jameseh96","avatars":[{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f9ec646afe19caebe3ea4325f0cea4de507a0f2c","unresolved":true,"context_lines":[{"line_number":53,"context_line":"    using SyncHdrHistogramPtr \u003d folly::Synchronized\u003c"},{"line_number":54,"context_line":"            std::unique_ptr\u003cstruct hdr_histogram, HdrDeleter\u003e\u003e;"},{"line_number":55,"context_line":"    // Used for Shared \"read\" locks"},{"line_number":56,"context_line":"    using ConstHistoLockedPtr \u003d SyncHdrHistogramPtr::ConstLockedPtr;"},{"line_number":57,"context_line":"    // Used for exclusive \"write\" locks"},{"line_number":58,"context_line":"    using HistoLockedPtr \u003d SyncHdrHistogramPtr::LockedPtr;"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":3,"id":"83fd49c4_7fb13775","line":56,"range":{"start_line":56,"start_character":53,"end_line":56,"end_character":68},"updated":"2020-10-06 13:50:13.000000000","message":"ConstLockedPtr alias is deprecated\n\nhttps://github.com/facebook/folly/blob/master/folly/Synchronized.h#L102","commit_id":"c3e3fd734e1a7d0479948d4a7d9aedcb595a1a0a"},{"author":{"_account_id":1004368,"name":"Richard de Mellow","email":"richard.demellow@couchbase.com","username":"rdemellow","avatars":[{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ec4d0030b2c19a4300966ef759521bb48ffe47db","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    using SyncHdrHistogramPtr \u003d folly::Synchronized\u003c"},{"line_number":54,"context_line":"            std::unique_ptr\u003cstruct hdr_histogram, HdrDeleter\u003e\u003e;"},{"line_number":55,"context_line":"    // Used for Shared \"read\" locks"},{"line_number":56,"context_line":"    using ConstHistoLockedPtr \u003d SyncHdrHistogramPtr::ConstLockedPtr;"},{"line_number":57,"context_line":"    // Used for exclusive \"write\" locks"},{"line_number":58,"context_line":"    using HistoLockedPtr \u003d SyncHdrHistogramPtr::LockedPtr;"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":3,"id":"bd77e305_10fc11af","line":56,"range":{"start_line":56,"start_character":53,"end_line":56,"end_character":68},"in_reply_to":"83fd49c4_7fb13775","updated":"2020-10-06 14:10:41.000000000","message":"Done","commit_id":"c3e3fd734e1a7d0479948d4a7d9aedcb595a1a0a"},{"author":{"_account_id":1003828,"name":"James H","email":"james.harrison@couchbase.com","username":"jameseh96","avatars":[{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f9ec646afe19caebe3ea4325f0cea4de507a0f2c","unresolved":true,"context_lines":[{"line_number":55,"context_line":"    // Used for Shared \"read\" locks"},{"line_number":56,"context_line":"    using ConstHistoLockedPtr \u003d SyncHdrHistogramPtr::ConstLockedPtr;"},{"line_number":57,"context_line":"    // Used for exclusive \"write\" locks"},{"line_number":58,"context_line":"    using HistoLockedPtr \u003d SyncHdrHistogramPtr::LockedPtr;"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"public:"},{"line_number":61,"context_line":"    struct Iterator : public hdr_iter {"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"27c47537_665ca33d","line":58,"range":{"start_line":58,"start_character":48,"end_line":58,"end_character":57},"updated":"2020-10-06 13:50:13.000000000","message":"Ditto here","commit_id":"c3e3fd734e1a7d0479948d4a7d9aedcb595a1a0a"},{"author":{"_account_id":1004368,"name":"Richard de Mellow","email":"richard.demellow@couchbase.com","username":"rdemellow","avatars":[{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ec4d0030b2c19a4300966ef759521bb48ffe47db","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    // Used for Shared \"read\" locks"},{"line_number":56,"context_line":"    using ConstHistoLockedPtr \u003d SyncHdrHistogramPtr::ConstLockedPtr;"},{"line_number":57,"context_line":"    // Used for exclusive \"write\" locks"},{"line_number":58,"context_line":"    using HistoLockedPtr \u003d SyncHdrHistogramPtr::LockedPtr;"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"public:"},{"line_number":61,"context_line":"    struct Iterator : public hdr_iter {"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"76977cf7_a79983cf","line":58,"range":{"start_line":58,"start_character":48,"end_line":58,"end_character":57},"in_reply_to":"27c47537_665ca33d","updated":"2020-10-06 14:10:41.000000000","message":"Done","commit_id":"c3e3fd734e1a7d0479948d4a7d9aedcb595a1a0a"},{"author":{"_account_id":1000966,"name":"Dave Rigby","email":"daver@couchbase.com","username":"drigby","avatars":[{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"9ab5e49a76d884087240c886c31f6e66aa77f979","unresolved":true,"context_lines":[{"line_number":336,"context_line":"     */"},{"line_number":337,"context_line":"    uint64_t getMinTrackableValue() const {"},{"line_number":338,"context_line":"        auto lock \u003d histogram.rlock();"},{"line_number":339,"context_line":"        return getMinTrackableValue(lock);"},{"line_number":340,"context_line":"    }"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    /**"}],"source_content_type":"text/x-csrc","patch_set":8,"id":"5a3fa731_fe6d92fd","line":339,"updated":"2020-10-07 09:00:50.000000000","message":"No need to change now, but as previous you don\u0027t really need the temporary here / elsewhere. \n\n return getMinTrackableValue(histogram.rlock());","commit_id":"61b49aa4277ed7ccdfcd94dc33293fd8da3bfd0c"},{"author":{"_account_id":1000966,"name":"Dave Rigby","email":"daver@couchbase.com","username":"drigby","avatars":[{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"68040915662626cb5693d5e841d66da1d97a1646","unresolved":true,"context_lines":[{"line_number":336,"context_line":"     */"},{"line_number":337,"context_line":"    uint64_t getMinTrackableValue() const {"},{"line_number":338,"context_line":"        auto lock \u003d histogram.rlock();"},{"line_number":339,"context_line":"        return getMinTrackableValue(lock);"},{"line_number":340,"context_line":"    }"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    /**"}],"source_content_type":"text/x-csrc","patch_set":8,"id":"a66e1e9c_7269f23b","line":339,"in_reply_to":"525f9c9f_1510d01d","updated":"2020-10-07 10:09:27.000000000","message":"getMinTrackableValue needs to take an rvalue-reference then (or const ref) to allow it to bind to a temporary.","commit_id":"61b49aa4277ed7ccdfcd94dc33293fd8da3bfd0c"},{"author":{"_account_id":1004368,"name":"Richard de Mellow","email":"richard.demellow@couchbase.com","username":"rdemellow","avatars":[{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"6845962516ce720a69702b915a9598b986b319f1","unresolved":true,"context_lines":[{"line_number":336,"context_line":"     */"},{"line_number":337,"context_line":"    uint64_t getMinTrackableValue() const {"},{"line_number":338,"context_line":"        auto lock \u003d histogram.rlock();"},{"line_number":339,"context_line":"        return getMinTrackableValue(lock);"},{"line_number":340,"context_line":"    }"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    /**"}],"source_content_type":"text/x-csrc","patch_set":8,"id":"525f9c9f_1510d01d","line":339,"in_reply_to":"5a3fa731_fe6d92fd","updated":"2020-10-07 10:02:31.000000000","message":"return getMinTrackableValue(histogram.rlock()); doesn\u0027t work here as it explicitly need a reference to an object,the compiler complains \"not viable: expects an l-value for 1st argument\"","commit_id":"61b49aa4277ed7ccdfcd94dc33293fd8da3bfd0c"},{"author":{"_account_id":1004368,"name":"Richard de Mellow","email":"richard.demellow@couchbase.com","username":"rdemellow","avatars":[{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"8f80ddf88a85c0f72c0c02bcec65e6379aef7ed6","unresolved":false,"context_lines":[{"line_number":336,"context_line":"     */"},{"line_number":337,"context_line":"    uint64_t getMinTrackableValue() const {"},{"line_number":338,"context_line":"        auto lock \u003d histogram.rlock();"},{"line_number":339,"context_line":"        return getMinTrackableValue(lock);"},{"line_number":340,"context_line":"    }"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    /**"}],"source_content_type":"text/x-csrc","patch_set":8,"id":"2f792ccf_421418fa","line":339,"in_reply_to":"a66e1e9c_7269f23b","updated":"2020-10-07 10:24:56.000000000","message":"needed a const, the one thing I didn\u0027t try 😞","commit_id":"61b49aa4277ed7ccdfcd94dc33293fd8da3bfd0c"},{"author":{"_account_id":1000966,"name":"Dave Rigby","email":"daver@couchbase.com","username":"drigby","avatars":[{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/514e75a8d75cc1fcdb22433d445ae8f1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"9ab5e49a76d884087240c886c31f6e66aa77f979","unresolved":true,"context_lines":[{"line_number":371,"context_line":"                uint64_t highestTrackableValue,"},{"line_number":372,"context_line":"                int significantFigures);"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    template \u003cclass LockType \u003d ConstRHistoLockedPtr\u003e"},{"line_number":375,"context_line":"    static uint64_t getMinTrackableValue(LockType\u0026 histoLockPtr) {"},{"line_number":376,"context_line":"        // We subtract one from the lowest value as we have added a one offset"},{"line_number":377,"context_line":"        // as the underlying hdr_histogram cannot store 0 and"}],"source_content_type":"text/x-csrc","patch_set":8,"id":"006f553b_c12fed86","line":374,"updated":"2020-10-07 09:00:50.000000000","message":"Note there isn\u0027t really any need in specifying a default template parameter value - it\u0027ll be deduced whenever you call the function.","commit_id":"61b49aa4277ed7ccdfcd94dc33293fd8da3bfd0c"},{"author":{"_account_id":1004368,"name":"Richard de Mellow","email":"richard.demellow@couchbase.com","username":"rdemellow","avatars":[{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/35c97da872c07458f5e5bc4938b2489f.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"6845962516ce720a69702b915a9598b986b319f1","unresolved":false,"context_lines":[{"line_number":371,"context_line":"                uint64_t highestTrackableValue,"},{"line_number":372,"context_line":"                int significantFigures);"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    template \u003cclass LockType \u003d ConstRHistoLockedPtr\u003e"},{"line_number":375,"context_line":"    static uint64_t getMinTrackableValue(LockType\u0026 histoLockPtr) {"},{"line_number":376,"context_line":"        // We subtract one from the lowest value as we have added a one offset"},{"line_number":377,"context_line":"        // as the underlying hdr_histogram cannot store 0 and"}],"source_content_type":"text/x-csrc","patch_set":8,"id":"2bc298a7_88b3a9d1","line":374,"in_reply_to":"006f553b_c12fed86","updated":"2020-10-07 10:02:31.000000000","message":"roger","commit_id":"61b49aa4277ed7ccdfcd94dc33293fd8da3bfd0c"}]}
