)]}'
{"src/item_pager.cc":[{"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":"bcd96f0f37e17949d3ef417c0c737c7708b48150","unresolved":false,"context_lines":[{"line_number":275,"context_line":"    doEvict(false) {}"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"ItemPager::~ItemPager() {"},{"line_number":278,"context_line":"    pv-\u003esetOwnerTaskToDead();"},{"line_number":279,"context_line":"}"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"bool ItemPager::run(void) {"}],"source_content_type":"text/x-c","patch_set":5,"id":"7db419fc_1f32275f","line":278,"updated":"2015-10-20 08:05:08.000000000","message":"Surely the solution here is to ensure that the PagingVisitor is stopped/destroyed etc before we destruct the ItemPager?","commit_id":"0817cd22f028e103ae9f467f011cf7ef8fe0e215"},{"author":{"_account_id":1000338,"name":"Abhi Dangeti","email":"abhinav@couchbase.com","username":"abhinavdangeti","avatars":[{"url":"https://www.gravatar.com/avatar/9007099855b1bf7d96e9c1a10bc9542e.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/9007099855b1bf7d96e9c1a10bc9542e.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/9007099855b1bf7d96e9c1a10bc9542e.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/9007099855b1bf7d96e9c1a10bc9542e.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"7921074cec1359f9f736cb8b6abc9b4903f24d6d","unresolved":false,"context_lines":[{"line_number":275,"context_line":"    doEvict(false) {}"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"ItemPager::~ItemPager() {"},{"line_number":278,"context_line":"    pv-\u003esetOwnerTaskToDead();"},{"line_number":279,"context_line":"}"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"bool ItemPager::run(void) {"}],"source_content_type":"text/x-c","patch_set":5,"id":"5db1150c_bb446729","line":278,"in_reply_to":"7db419fc_1f32275f","updated":"2015-10-20 17:50:18.000000000","message":"True that is the intention, however - attempting to cancel the subtask from here would introduce a dead lock in the executor pool, reason why I opted this approach.\n\nDeadlock: [ExecutorPool::stopTaskGroup] --\u003e [acquire tmutex] --\u003e [cancel itemPager] --\u003e [ExecutorPool::cancel(subtask)] --\u003e [acquire tmutex]","commit_id":"0817cd22f028e103ae9f467f011cf7ef8fe0e215"},{"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":"7f6e7f8ff81c21ca0573f4541870dfc014c73361","unresolved":false,"context_lines":[{"line_number":234,"context_line":"    double activeBias;"},{"line_number":235,"context_line":"    size_t ejected;"},{"line_number":236,"context_line":"    time_t startTime;"},{"line_number":237,"context_line":"    shared_ptr\u003cAtomicValue\u003cbool\u003e\u003e \u0026stateFinalizer;"},{"line_number":238,"context_line":"    pager_type_t owner;"},{"line_number":239,"context_line":"    bool canPause;"},{"line_number":240,"context_line":"    bool completePhase;"}],"source_content_type":"text/x-c","patch_set":7,"id":"5db1150c_9bad2b91","line":237,"updated":"2015-10-20 19:24:51.000000000","message":"shared_ptr\u003cAtomicValue\u003cbool\u003e\u003e stateFinalizer;","commit_id":"ad07003acbaaec0cdb1a365e125fcca97f190c7a"}],"src/item_pager.h":[{"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":"02ece75ae1f683c5891f1532ecc6ab9b2a32c9e4","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    EventuallyPersistentEngine     *engine;"},{"line_number":85,"context_line":"    EPStats                        \u0026stats;"},{"line_number":86,"context_line":"    AtomicValue\u003cbool\u003e               available;"},{"line_number":87,"context_line":"    item_pager_phase                phase;"},{"line_number":88,"context_line":"    shared_ptr\u003cPagingVisitor\u003e       pv;"},{"line_number":89,"context_line":"    bool                            doEvict;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"5db1150c_9b176b06","line":86,"updated":"2015-10-20 18:43:39.000000000","message":"I think we can address this issue by allocating \u0027available\u0027 variable in heap and access the instance through shared_ptr in both ItemPager and PagingVisitor. In this way, we make it thread-safe from these two accessors.","commit_id":"0817cd22f028e103ae9f467f011cf7ef8fe0e215"},{"author":{"_account_id":1000338,"name":"Abhi Dangeti","email":"abhinav@couchbase.com","username":"abhinavdangeti","avatars":[{"url":"https://www.gravatar.com/avatar/9007099855b1bf7d96e9c1a10bc9542e.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/9007099855b1bf7d96e9c1a10bc9542e.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/9007099855b1bf7d96e9c1a10bc9542e.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/9007099855b1bf7d96e9c1a10bc9542e.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"70efa468cdad0aa80a22613ee416400a68f9b134","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    EventuallyPersistentEngine     *engine;"},{"line_number":85,"context_line":"    EPStats                        \u0026stats;"},{"line_number":86,"context_line":"    AtomicValue\u003cbool\u003e               available;"},{"line_number":87,"context_line":"    item_pager_phase                phase;"},{"line_number":88,"context_line":"    shared_ptr\u003cPagingVisitor\u003e       pv;"},{"line_number":89,"context_line":"    bool                            doEvict;"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"5db1150c_7bda5f3e","line":86,"in_reply_to":"5db1150c_9b176b06","updated":"2015-10-20 19:12:19.000000000","message":"Yes, this can be done.","commit_id":"0817cd22f028e103ae9f467f011cf7ef8fe0e215"}]}
