File tree Expand file tree Collapse file tree 1 file changed +4
-11
lines changed Expand file tree Collapse file tree 1 file changed +4
-11
lines changed Original file line number Diff line number Diff line change @@ -25,23 +25,16 @@ namespace itk
25
25
26
26
namespace
27
27
{
28
- std::mutex globalDefaultSplitterLock ;
28
+ std::once_flag globalDefaultSplitterOnceFlag ;
29
29
ImageRegionSplitterBase::Pointer globalDefaultSplitter;
30
30
} // namespace
31
31
32
32
const ImageRegionSplitterBase *
33
33
ImageSourceCommon::GetGlobalDefaultSplitter ()
34
34
{
35
- if (globalDefaultSplitter.IsNull ())
36
- {
37
- // thread safe lazy initialization, prevent race condition on
38
- // setting, with an atomic set if null.
39
- std::lock_guard<std::mutex> lock (globalDefaultSplitterLock);
40
- if (globalDefaultSplitter.IsNull ())
41
- {
42
- globalDefaultSplitter = ImageRegionSplitterSlowDimension::New ().GetPointer ();
43
- }
44
- }
35
+ std::call_once (globalDefaultSplitterOnceFlag,
36
+ []() { globalDefaultSplitter = ImageRegionSplitterSlowDimension::New ().GetPointer (); });
37
+
45
38
return globalDefaultSplitter;
46
39
}
47
40
You can’t perform that action at this time.
0 commit comments