)]}'
{"src/dcp/flow-control.cc":[{"author":{"_account_id":1000097,"name":"Chiyoung Seo","email":"chiyoung@northscale.com","username":"chiyoung","avatars":[{"url":"https://www.gravatar.com/avatar/ec517f4126dd292151b452ce4d1edf31.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ec517f4126dd292151b452ce4d1edf31.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ec517f4126dd292151b452ce4d1edf31.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ec517f4126dd292151b452ce4d1edf31.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"731e84c0b0a08bb7ca5fbc23a0f0b48882a7759f","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"void FlowControl::addStats(ADD_STAT add_stat, const void *c)"},{"line_number":131,"context_line":"{"},{"line_number":132,"context_line":"    SpinLockHolder lh(\u0026bufferSizeLock);"},{"line_number":133,"context_line":"    consumerConn-\u003eaddStat(\"total_acked_bytes\", ackedBytes, add_stat, c);"},{"line_number":134,"context_line":"    consumerConn-\u003eaddStat(\"max_buffer_bytes\", bufferSize, add_stat, c);"},{"line_number":135,"context_line":"}"}],"source_content_type":"text/x-c","patch_set":1,"id":"3dc0e167_a0179e05","line":132,"updated":"2015-10-23 05:25:06.000000000","message":"This spinlock is used to synchronize the accesses to both bufferSize and pendingControl at the same time. I think we can make bufferSize RelaxedAtomic to avoid racing in reading stats in this function.","commit_id":"03631a8d936aabae2d1f300ce11fa4ee3512cc32"}]}
