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 /Source/CTest | |
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.
Diffstat (limited to 'Source/CTest')
-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(); |