)]}'
{"src/executorpool.cc":[{"author":{"_account_id":1000489,"name":"Sundar Sridharan","email":"sundar@couchbase.com","username":"sundar","avatars":[{"url":"https://www.gravatar.com/avatar/c4b296426c3566f9fc7c5d6a7276df15.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/c4b296426c3566f9fc7c5d6a7276df15.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/c4b296426c3566f9fc7c5d6a7276df15.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/c4b296426c3566f9fc7c5d6a7276df15.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"29226a803e0459ed2644556b9d4bbb637b233d3c","unresolved":false,"context_lines":[{"line_number":551,"context_line":"    // taskLocator, just so that the destructor of any task"},{"line_number":552,"context_line":"    // isn\u0027t called because of reference count becoming zero,"},{"line_number":553,"context_line":"    // while holding the tMutex."},{"line_number":554,"context_line":"    std::queue\u003cExTask\u003e tasksQueue;"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"    LockHolder lh(tMutex);"},{"line_number":557,"context_line":"    do {"}],"source_content_type":"text/x-c","patch_set":1,"id":"3dc0e167_6066265c","line":554,"updated":"2015-10-23 18:51:32.000000000","message":"can we call this unfinishedTasksQueue please? thanks","commit_id":"a2af62acee62a293fa0acfc7f47b3b6ade3c29c9"},{"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":"1572c4c6d24de2c9471a3ecec1eb1eedcd97e8ba","unresolved":false,"context_lines":[{"line_number":551,"context_line":"    // taskLocator, just so that the destructor of any task"},{"line_number":552,"context_line":"    // isn\u0027t called because of reference count becoming zero,"},{"line_number":553,"context_line":"    // while holding the tMutex."},{"line_number":554,"context_line":"    std::queue\u003cExTask\u003e tasksQueue;"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"    LockHolder lh(tMutex);"},{"line_number":557,"context_line":"    do {"}],"source_content_type":"text/x-c","patch_set":1,"id":"3dc0e167_609186e7","line":554,"in_reply_to":"3dc0e167_6066265c","updated":"2015-10-23 19:14:42.000000000","message":"Done","commit_id":"a2af62acee62a293fa0acfc7f47b3b6ade3c29c9"},{"author":{"_account_id":1000489,"name":"Sundar Sridharan","email":"sundar@couchbase.com","username":"sundar","avatars":[{"url":"https://www.gravatar.com/avatar/c4b296426c3566f9fc7c5d6a7276df15.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/c4b296426c3566f9fc7c5d6a7276df15.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/c4b296426c3566f9fc7c5d6a7276df15.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/c4b296426c3566f9fc7c5d6a7276df15.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"29226a803e0459ed2644556b9d4bbb637b233d3c","unresolved":false,"context_lines":[{"line_number":581,"context_line":"            tMutex.wait(MIN_SLEEP_TIME); // Wait till task gets cancelled"},{"line_number":582,"context_line":"        }"},{"line_number":583,"context_line":"    } while (unfinishedTask);"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    return retVal;"},{"line_number":586,"context_line":"}"},{"line_number":587,"context_line":""}],"source_content_type":"text/x-c","patch_set":1,"id":"3dc0e167_4063224a","line":584,"updated":"2015-10-23 18:51:32.000000000","message":"I assume when this function returns all the queue elements will get popped and destroyed right?","commit_id":"a2af62acee62a293fa0acfc7f47b3b6ade3c29c9"},{"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":"1572c4c6d24de2c9471a3ecec1eb1eedcd97e8ba","unresolved":false,"context_lines":[{"line_number":581,"context_line":"            tMutex.wait(MIN_SLEEP_TIME); // Wait till task gets cancelled"},{"line_number":582,"context_line":"        }"},{"line_number":583,"context_line":"    } while (unfinishedTask);"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    return retVal;"},{"line_number":586,"context_line":"}"},{"line_number":587,"context_line":""}],"source_content_type":"text/x-c","patch_set":1,"id":"3dc0e167_80949ad9","line":584,"in_reply_to":"3dc0e167_4063224a","updated":"2015-10-23 19:14:42.000000000","message":"yes they will be, i\u0027ll clear it up just in case : )","commit_id":"a2af62acee62a293fa0acfc7f47b3b6ade3c29c9"},{"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":"ceeb3f8d728bf0c9d9bc2993c94ffc7dff5a2fc3","unresolved":false,"context_lines":[{"line_number":551,"context_line":"    // taskLocator, just so that the destructor of any task"},{"line_number":552,"context_line":"    // isn\u0027t called because of reference count becoming zero,"},{"line_number":553,"context_line":"    // while holding the tMutex."},{"line_number":554,"context_line":"    std::list\u003cExTask\u003e unfinishedTasksList;"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"    LockHolder lh(tMutex);"},{"line_number":557,"context_line":"    do {"}],"source_content_type":"text/x-c","patch_set":2,"id":"3dc0e167_e365a0f2","line":554,"updated":"2015-10-23 21:31:00.000000000","message":"I think this is still a workaround and not a good approach to fixing this issue. ExecutorPool does the right thing to manage the life cycle of task instances through the reference counter. I think we need to fix this issue in DCP side. \n\nIf I look at this code, it is not easy to understand why we need to add stopped tasks to the list and free them after releasing the task mutex.","commit_id":"c63f423d63945aa2cb919bb184f2606b2fbd377f"}]}
