)]}'
{"src/executorpool.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":"8bebe6172460cd5280e231d15fe37f5398bc3956","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    if (tmp !\u003d nullptr) {"},{"line_number":168,"context_line":"        if (tmp-\u003etaskOwners.size() !\u003d 0) {"},{"line_number":169,"context_line":"            // Open taskables"},{"line_number":170,"context_line":"            return false;"},{"line_number":171,"context_line":"        }"},{"line_number":172,"context_line":"        delete tmp;"},{"line_number":173,"context_line":"        instance \u003d nullptr;"}],"source_content_type":"text/x-c","patch_set":2,"id":"3d49c14d_583675ec","line":170,"updated":"2016-09-21 22:30:29.000000000","message":"Then, how can we make sure that all the tasks in the queue should be canceled and terminated?","commit_id":"65a4d41468fe456f53a93f8635f128052701eece"},{"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":"5312fdd271c9ee3700499755379baffdc7acc72c","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    if (tmp !\u003d nullptr) {"},{"line_number":168,"context_line":"        if (tmp-\u003etaskOwners.size() !\u003d 0) {"},{"line_number":169,"context_line":"            // Open taskables"},{"line_number":170,"context_line":"            return false;"},{"line_number":171,"context_line":"        }"},{"line_number":172,"context_line":"        delete tmp;"},{"line_number":173,"context_line":"        instance \u003d nullptr;"}],"source_content_type":"text/x-c","patch_set":2,"id":"3d49c14d_d870a5a5","line":170,"in_reply_to":"3d49c14d_389ff1a4","updated":"2016-09-21 23:18:03.000000000","message":"We wait for all tasks to complete when fdb_shutdown is invoked anyway. And i\u0027m afraid we don\u0027t have a shutdown flag check.\n\nCalling unregisterTaskable again within shutdown of ExecutorPool is unnecessary. Here\u0027s why:\n- In master branch: FileMgr::shutdown() which is invoked before ExecutorPool::shutdown() invokes unregisterTaskable for all open files and waits for all tasks to complete.\n- In unstable branch: CompactionManager::destroyInstance() which is invoked before ExecutorPool::shutdown() invokes unregisterTaskable and waits for all pending fileRemoval tasks to complete.","commit_id":"65a4d41468fe456f53a93f8635f128052701eece"},{"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":"d71a0d40d5beabc9bc00a7e4234403a4312c2a50","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    if (tmp !\u003d nullptr) {"},{"line_number":168,"context_line":"        if (tmp-\u003etaskOwners.size() !\u003d 0) {"},{"line_number":169,"context_line":"            // Open taskables"},{"line_number":170,"context_line":"            return false;"},{"line_number":171,"context_line":"        }"},{"line_number":172,"context_line":"        delete tmp;"},{"line_number":173,"context_line":"        instance \u003d nullptr;"}],"source_content_type":"text/x-c","patch_set":2,"id":"3d49c14d_f85f2923","line":170,"in_reply_to":"3d49c14d_583675ec","updated":"2016-09-21 22:37:19.000000000","message":"unregisterTaskable is always invoked in the destructor for the objects for whom registerTaskable was invoked. ExecutorPool::shutdown therefore will not need to do it again.","commit_id":"65a4d41468fe456f53a93f8635f128052701eece"},{"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":"918552a53df8bed4665a77b0f2288fcb7f63f175","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    if (tmp !\u003d nullptr) {"},{"line_number":168,"context_line":"        if (tmp-\u003etaskOwners.size() !\u003d 0) {"},{"line_number":169,"context_line":"            // Open taskables"},{"line_number":170,"context_line":"            return false;"},{"line_number":171,"context_line":"        }"},{"line_number":172,"context_line":"        delete tmp;"},{"line_number":173,"context_line":"        instance \u003d nullptr;"}],"source_content_type":"text/x-c","patch_set":2,"id":"3d49c14d_389ff1a4","line":170,"in_reply_to":"3d49c14d_f85f2923","updated":"2016-09-21 23:05:26.000000000","message":"Does it mean that we should wait until all the tasks in the queue are completed? I remembered that a task in ep-engine checks \"shutdown\" flag upon execution and then terminates immediately without executing its function. Do we have the same logic?","commit_id":"65a4d41468fe456f53a93f8635f128052701eece"}]}
