Loading cpp/CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ Please mark all change in change log and use the ticket from JIRA. - MS-620 - Get table row counts display wrong error code - MS-637 - out of memory when load too many tasks - MS-640 - Cache object size calculate incorrect - MS-641 - Segment fault(signal 11) in PickToLoad ## Improvement - MS-552 - Add and change the easylogging library Loading cpp/src/scheduler/TaskTable.cpp +6 −3 Original line number Diff line number Diff line Loading @@ -158,8 +158,9 @@ TaskTableItem::Dump() { std::vector<uint64_t> TaskTable::PickToLoad(uint64_t limit) { std::lock_guard<std::mutex> lock(mutex_); size_t count = 0; for (int j = last_finish_ + 1; j < table_.size(); ++j) { for (uint64_t j = last_finish_ + 1; j < table_.size(); ++j) { if (not table_[j]) { SERVER_LOG_WARNING << "table[" << j << "] is nullptr"; } Loading @@ -186,6 +187,7 @@ TaskTable::PickToLoad(uint64_t limit) { std::vector<uint64_t> TaskTable::PickToExecute(uint64_t limit) { std::lock_guard<std::mutex> lock(mutex_); std::vector<uint64_t> indexes; bool cross = false; for (uint64_t i = last_finish_ + 1, count = 0; i < table_.size() && count < limit; ++i) { Loading @@ -202,7 +204,7 @@ TaskTable::PickToExecute(uint64_t limit) { void TaskTable::Put(TaskPtr task) { std::lock_guard<std::mutex> lock(id_mutex_); std::lock_guard<std::mutex> lock(mutex_); auto item = std::make_shared<TaskTableItem>(); item->id = id_++; item->task = std::move(task); Loading @@ -216,7 +218,7 @@ TaskTable::Put(TaskPtr task) { void TaskTable::Put(std::vector<TaskPtr>& tasks) { std::lock_guard<std::mutex> lock(id_mutex_); std::lock_guard<std::mutex> lock(mutex_); for (auto& task : tasks) { auto item = std::make_shared<TaskTableItem>(); item->id = id_++; Loading @@ -232,6 +234,7 @@ TaskTable::Put(std::vector<TaskPtr>& tasks) { TaskTableItemPtr TaskTable::Get(uint64_t index) { std::lock_guard<std::mutex> lock(mutex_); return table_[index]; } Loading cpp/src/scheduler/TaskTable.h +1 −4 Original line number Diff line number Diff line Loading @@ -149,9 +149,6 @@ class TaskTable { } public: TaskTableItemPtr& operator[](uint64_t index) { return table_[index]; } std::deque<TaskTableItemPtr>::iterator begin() { Loading Loading @@ -244,7 +241,7 @@ class TaskTable { private: std::uint64_t id_ = 0; mutable std::mutex id_mutex_; mutable std::mutex mutex_; std::deque<TaskTableItemPtr> table_; std::function<void(void)> subscriber_ = nullptr; Loading Loading
cpp/CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ Please mark all change in change log and use the ticket from JIRA. - MS-620 - Get table row counts display wrong error code - MS-637 - out of memory when load too many tasks - MS-640 - Cache object size calculate incorrect - MS-641 - Segment fault(signal 11) in PickToLoad ## Improvement - MS-552 - Add and change the easylogging library Loading
cpp/src/scheduler/TaskTable.cpp +6 −3 Original line number Diff line number Diff line Loading @@ -158,8 +158,9 @@ TaskTableItem::Dump() { std::vector<uint64_t> TaskTable::PickToLoad(uint64_t limit) { std::lock_guard<std::mutex> lock(mutex_); size_t count = 0; for (int j = last_finish_ + 1; j < table_.size(); ++j) { for (uint64_t j = last_finish_ + 1; j < table_.size(); ++j) { if (not table_[j]) { SERVER_LOG_WARNING << "table[" << j << "] is nullptr"; } Loading @@ -186,6 +187,7 @@ TaskTable::PickToLoad(uint64_t limit) { std::vector<uint64_t> TaskTable::PickToExecute(uint64_t limit) { std::lock_guard<std::mutex> lock(mutex_); std::vector<uint64_t> indexes; bool cross = false; for (uint64_t i = last_finish_ + 1, count = 0; i < table_.size() && count < limit; ++i) { Loading @@ -202,7 +204,7 @@ TaskTable::PickToExecute(uint64_t limit) { void TaskTable::Put(TaskPtr task) { std::lock_guard<std::mutex> lock(id_mutex_); std::lock_guard<std::mutex> lock(mutex_); auto item = std::make_shared<TaskTableItem>(); item->id = id_++; item->task = std::move(task); Loading @@ -216,7 +218,7 @@ TaskTable::Put(TaskPtr task) { void TaskTable::Put(std::vector<TaskPtr>& tasks) { std::lock_guard<std::mutex> lock(id_mutex_); std::lock_guard<std::mutex> lock(mutex_); for (auto& task : tasks) { auto item = std::make_shared<TaskTableItem>(); item->id = id_++; Loading @@ -232,6 +234,7 @@ TaskTable::Put(std::vector<TaskPtr>& tasks) { TaskTableItemPtr TaskTable::Get(uint64_t index) { std::lock_guard<std::mutex> lock(mutex_); return table_[index]; } Loading
cpp/src/scheduler/TaskTable.h +1 −4 Original line number Diff line number Diff line Loading @@ -149,9 +149,6 @@ class TaskTable { } public: TaskTableItemPtr& operator[](uint64_t index) { return table_[index]; } std::deque<TaskTableItemPtr>::iterator begin() { Loading Loading @@ -244,7 +241,7 @@ class TaskTable { private: std::uint64_t id_ = 0; mutable std::mutex id_mutex_; mutable std::mutex mutex_; std::deque<TaskTableItemPtr> table_; std::function<void(void)> subscriber_ = nullptr; Loading