This project is mirrored from https://github.com/mantidproject/mantid.git.
Pull mirroring updated .
- Apr 01, 2020
-
-
-
Peterson, Peter authored
-
Peterson, Peter authored
-
Peterson, Peter authored
-
- Mar 31, 2020
-
-
-
Peterson, Peter authored
-
Peterson, Peter authored
-
- Mar 26, 2020
-
-
Nick Draper authored
Haven't changed AlgorithmProxy as that class will be deleted in the next PR
-
Nick Draper authored
and fix a unit test for not having a list limit
-
Nick Draper authored
-
Hahn, Steven authored
Signed-off-by:
Steven Hahn <hahnse@ornl.gov>
-
- Mar 25, 2020
-
-
Hahn, Steven authored
Signed-off-by:
Steven Hahn <hahnse@ornl.gov>
-
David Fairbrother authored
-
David Fairbrother authored
-
David Fairbrother authored
Runs clang-tidy pass by ref across the codebase to fix-up various warnings we are seeing in cppcheck
-
David Fairbrother authored
Hand-fixes some cppcheck warnings, this was work prior to fixing the cppcheck target.
-
- Mar 24, 2020
-
-
Nick Draper authored
-
Nick Draper authored
-
- Mar 20, 2020
-
-
Nick Draper authored
-
Nick Draper authored
-
Nick Draper authored
Also updated class_maker.py
-
- Mar 16, 2020
-
-
Danny Hindson authored
Apply change to insert export macros into class definition using cmake GenerateExportHeader feature to 3 more projects: API, Crystal and CurveFitting Have replaced DllExport with the cmake macro except in these places: a) class templates - the definitions of class template member functions need to be in the same unit as the declaration so dllimport gives a compilation error in the client code (C2491 in VS) eg SingleValueParameter, SingleValueParameterParser b) headers which are in a project but aren't included by any .cpp units in the project eg IBackgroundFunction.h, ICatalogInfoService.h. In these cases I've removed the DLLExport attribute completely For the API target there were a couple of special cases\extras: API has some conditional use of the extern keyword to control instantiation of template classes. This has been inserted into the automatically created dllconfig.h using a cmake switch that allows some custom content to be appended to the end of the file. Few of the targets require this so I've added a boolean parameter to the wrapper function to handle this GENERATE_MANTID_EXPORT_HEADER I also had to add explicit include directories to PythonInterfaceCore where it imports an API target header (in the unit ExtractWorkspace.h) without having API as a dependency
-
- Mar 13, 2020
-
-
David Fairbrother authored
Replaces the deprecated scheduler_init with global_control. This should future proof us, and completely avoids all the threading issues we were seeing previously. The TBB_PREVIEW_GLOBAL_CONTROL macro is required until TBB 2019U4, or 11 internally. So for simplicity we will make platforms using an older version of TBB (RHEL7 and Ubuntu at writing) switch to scheduler init
-
David Fairbrother authored
Fixes the following assertion thrown by TBB: Attempt to terminate non-local scheduler instance This took a significant amount of time to track down due to a number of factors. If your looking for a quick fix; set your tbb::task_scheduler_init to use thread local storage. This is caused by using Python multi-processing (in our case for the system tests). The process will spawn correctly (Windows), however Python will helpfully create seperate thread(s). I assume to observe. In this case the task_scheduler_init handle would then belong to one of these threads, as the act of importing our Python module would init the framework and TBB implicitly. When the tests run and TBBs scheduling is required it will "sign_on" in tbb's governor.cpp to handle scheduling. This works because the scheduler_init handle is process wide. However internally they then use thread local storage (TLS) for tracking the scheduler. As the main process goes to destruct it assumes that we must have a scheduler instance, since at process level we have done the init. But we cannot see any schedulers since they belong to a different thread. We have been getting away with this as the TLS returns NULL which effectively nops the destruction. But the assert correctly points out were getting this wrong. Marking each handle to the scheduler as thread local effectively ties the destruction of the thread to its init status. For most threads this effectively means we create a unique_ptr which isn't used. But for our main threads and weird edge case worker threads it keeps the thread state consistent. We've used a unique_ptr since we have an API which allows us to change the number of threads TBB can spin up. However, anyone else facing this issue would probably be fine with a thread local object allocated on the stack.
-
Hahn, Steven authored
Signed-off-by:
Steven Hahn <hahnse@ornl.gov>
-
- Mar 11, 2020
-
-
Hahn, Steven authored
Signed-off-by:
Steven Hahn <hahnse@ornl.gov>
-
- Mar 10, 2020
-
-
Hahn, Steven authored
Signed-off-by:
Steven Hahn <hahnse@ornl.gov>
-
Hahn, Steven authored
Signed-off-by:
Steven Hahn <hahnse@ornl.gov>
-
Hahn, Steven authored
Signed-off-by:
Steven Hahn <hahnse@ornl.gov>
-
Hahn, Steven authored
Signed-off-by:
Steven Hahn <hahnse@ornl.gov>
-
Hahn, Steven authored
Signed-off-by:
Steven Hahn <hahnse@ornl.gov>
-
- Mar 09, 2020
-
-
Hahn, Steven authored
Signed-off-by:
Steven Hahn <hahnse@ornl.gov>
-
Hahn, Steven authored
Signed-off-by:
Steven Hahn <hahnse@ornl.gov>
-
Hahn, Steven authored
Signed-off-by:
Steven Hahn <hahnse@ornl.gov>
-
Hahn, Steven authored
Signed-off-by:
Steven Hahn <hahnse@ornl.gov>
-
- Mar 06, 2020
-
-
Nick Draper authored
-
Nick Draper authored
when creating a new algorithm re #28093
-
Nick Draper authored
-
Nick Draper authored
-
Nick Draper authored
-