diff options
author | Brad King <brad.king@kitware.com> | 2023-11-02 17:56:01 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-11-22 12:49:04 (GMT) |
commit | 0432b921aecfee3cf400a1f1ad8e65a1f7bc5a01 (patch) | |
tree | 98bfb765076a62022f61e2b0112bf4f68be95999 | |
parent | b17c732e88e5681fd1ec90d587d796c44329028b (diff) | |
download | CMake-0432b921aecfee3cf400a1f1ad8e65a1f7bc5a01.zip CMake-0432b921aecfee3cf400a1f1ad8e65a1f7bc5a01.tar.gz CMake-0432b921aecfee3cf400a1f1ad8e65a1f7bc5a01.tar.bz2 |
cmCTestMultiProcessHandler: Inline removal of pending test as it starts
Avoid searching the entire list of ordered pending tests to remove one
when we already know where it is.
-rw-r--r-- | Source/CTest/cmCTestMultiProcessHandler.cxx | 17 | ||||
-rw-r--r-- | Source/CTest/cmCTestMultiProcessHandler.h | 1 |
2 files changed, 7 insertions, 11 deletions
diff --git a/Source/CTest/cmCTestMultiProcessHandler.cxx b/Source/CTest/cmCTestMultiProcessHandler.cxx index d910367..be210f4 100644 --- a/Source/CTest/cmCTestMultiProcessHandler.cxx +++ b/Source/CTest/cmCTestMultiProcessHandler.cxx @@ -438,13 +438,6 @@ void cmCTestMultiProcessHandler::UnlockResources(int index) this->RunningCount -= this->GetProcessorsUsed(index); } -void cmCTestMultiProcessHandler::ErasePendingTest(int test) -{ - this->PendingTests.erase(test); - this->OrderedTests.erase( - std::find(this->OrderedTests.begin(), this->OrderedTests.end(), test)); -} - inline size_t cmCTestMultiProcessHandler::GetProcessorsUsed(int test) { size_t processors = static_cast<int>(this->Properties[test]->Processors); @@ -537,7 +530,8 @@ void cmCTestMultiProcessHandler::StartNextTests() ti != this->OrderedTests.end()) { // Increment the test iterator now because the current list // entry may be deleted below. - int test = *ti++; + auto cti = ti++; + int test = *cti; // We can only start a RUN_SERIAL test if no other tests are also // running. @@ -592,7 +586,8 @@ void cmCTestMultiProcessHandler::StartNextTests() // The test is ready to run. numToStart -= processors; - this->ErasePendingTest(test); + this->OrderedTests.erase(cti); + this->PendingTests.erase(test); this->StartTest(test); } @@ -1411,7 +1406,9 @@ void cmCTestMultiProcessHandler::CheckResume() void cmCTestMultiProcessHandler::RemoveTest(int index) { - this->ErasePendingTest(index); + this->OrderedTests.erase( + std::find(this->OrderedTests.begin(), this->OrderedTests.end(), index)); + this->PendingTests.erase(index); this->Properties.erase(index); this->Completed++; } diff --git a/Source/CTest/cmCTestMultiProcessHandler.h b/Source/CTest/cmCTestMultiProcessHandler.h index ffbe16f..1be04aa 100644 --- a/Source/CTest/cmCTestMultiProcessHandler.h +++ b/Source/CTest/cmCTestMultiProcessHandler.h @@ -127,7 +127,6 @@ protected: // Removes the checkpoint file void MarkFinished(); - void ErasePendingTest(int index); void FinishTestProcess(std::unique_ptr<cmCTestRunTest> runner, bool started); void StartNextTestsOnIdle(); |