Skip to content

Commit ee67d98

Browse files
committed
Merge branch 'release-5.4'
2 parents 657e16e + bf0b1fe commit ee67d98

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

Modules/Core/Common/src/itkMultiThreaderBase.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,8 +221,8 @@ MultiThreaderBase::SetGlobalMaximumNumberOfThreads(ThreadIdType val)
221221
m_PimplGlobals->m_GlobalMaximumNumberOfThreads = std::clamp<ThreadIdType>(val, 1, ITK_MAX_THREADS);
222222

223223
// If necessary reset the default to be used from now on.
224-
m_PimplGlobals->m_GlobalDefaultNumberOfThreads =
225-
std::min(m_PimplGlobals->m_GlobalDefaultNumberOfThreads, m_PimplGlobals->m_GlobalMaximumNumberOfThreads);
224+
MultiThreaderBase::SetGlobalDefaultNumberOfThreads(
225+
std::min(Self::GetGlobalDefaultNumberOfThreads(), Self::GetGlobalMaximumNumberOfThreads()));
226226
}
227227

228228
ThreadIdType

Modules/Core/Common/test/itkMultiThreaderBaseTest.cxx

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,12 @@ SetAndVerify(int number)
103103
int
104104
itkMultiThreaderBaseTest(int argc, char * argv[])
105105
{
106+
bool result = true;
107+
108+
itk::MultiThreaderBase::SetGlobalMaximumNumberOfThreads(1);
109+
result &= itk::MultiThreaderBase::GetGlobalMaximumNumberOfThreads() == 1;
110+
result &= itk::MultiThreaderBase::GetGlobalDefaultNumberOfThreads() == 1;
111+
106112
// Choose a number of threads.
107113
int numberOfThreads = 10;
108114
if (argc > 1)
@@ -114,13 +120,21 @@ itkMultiThreaderBaseTest(int argc, char * argv[])
114120
}
115121
}
116122

117-
bool result = true;
118123
TEST_SINGLE_CLASS(PlatformMultiThreader);
119124
TEST_SINGLE_CLASS(PoolMultiThreader);
120125
#ifdef ITK_USE_TBB
121126
TEST_SINGLE_CLASS(TBBMultiThreader);
122127
#endif
123128

129+
130+
itk::MultiThreaderBase::SetGlobalMaximumNumberOfThreads(2);
131+
result &= VerifyRange(
132+
itk::MultiThreaderBase::GetGlobalMaximumNumberOfThreads(), 1, 2, "Range error in MaximumNumberOfThreads");
133+
itk::MultiThreaderBase::SetGlobalDefaultNumberOfThreads(4);
134+
result &= VerifyRange(
135+
itk::MultiThreaderBase::GetGlobalDefaultNumberOfThreads(), 1, 2, "Range error in DefaultNumberOfThreads");
136+
137+
124138
itk::MultiThreaderBase::SetGlobalDefaultNumberOfThreads(numberOfThreads);
125139

126140
result &= SetAndVerify(-1);
@@ -134,7 +148,6 @@ itkMultiThreaderBaseTest(int argc, char * argv[])
134148
result &= SetAndVerify(itk::MultiThreaderBase::GetGlobalMaximumNumberOfThreads() - 1);
135149
result &= SetAndVerify(itk::MultiThreaderBase::GetGlobalMaximumNumberOfThreads() + 1);
136150

137-
138151
// Test streaming enumeration for MultiThreaderBaseEnums::Threader elements
139152
const std::set<itk::MultiThreaderBaseEnums::Threader> allThreader{
140153
itk::MultiThreaderBaseEnums::Threader::Platform,

0 commit comments

Comments
 (0)