This project is mirrored from https://github.com/mantidproject/mantid.git.
Pull mirroring updated .
- Mar 13, 2020
-
-
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.
-
David Fairbrother authored
-
- Mar 12, 2020
-
-
Martyn Gigg authored
-
Martyn Gigg authored
-
Martyn Gigg authored
-
Nick Draper authored
Update logging calls so they work in sphinx v2.3
-
Gigg, Martyn Anthony authored
Add documentation for the thermal neutron back to back functions
-
Gagik Vardanyan authored
Deprecate simpleapi *Dialog functions
-
Gagik Vardanyan authored
Fix TOFTOF reduction script execution
-
Gigg, Martyn Anthony authored
Use cmake generate_mantid_export_header to generate DllConfig.h (Algorithms)
-
Alice Russell authored
Co-Authored-By:
Harrietbrown <49688535+Harrietbrown@users.noreply.github.com>
-
Gigg, Martyn Anthony authored
Replace header guards in tools with pragma once.
-
Gigg, Martyn Anthony authored
They have low to zero usage and at this point are just a maintenance burden. They do not work in workbench and are not worth the effort to port. In the future it would be better to replace input in workbench with a function that raises a generic QInputDialog.
-
Dan Nixon authored
Replace header guards in RemoteAlgorithms and RemoteJobManager with pragma once
-
Dan Nixon authored
Replace header guards in TestHelpers and Types with pragma once
-
Gigg, Martyn Anthony authored
Fix Muon and Frequency Domain Analysis GUIs not opening in Plot
-
Gigg, Martyn Anthony authored
updated elemental analysis ref data
-
Simon Heybrock authored
Replace header guards in qt/icons and qt/paraview_ext with pragma once
-
Anthony authored
Co-Authored-By:
Harrietbrown <49688535+Harrietbrown@users.noreply.github.com>
-
- Mar 11, 2020
-
-
mantid-builder authored
-
Gigg, Martyn Anthony authored
Replace header guards in Testing with pragma once.
-
Gigg, Martyn Anthony authored
Replace header guards in MantidPlot with pragma once
-
Gigg, Martyn Anthony authored
Fix Plot Type being in context menu on plot with only one line
-
Gigg, Martyn Anthony authored
Add documentation for UserFunctionMD
-
Gigg, Martyn Anthony authored
Replace header guards in Geometry with pragma once
-
Stephen Smith authored
-
Marina Ganeva authored
-
Danny Hindson authored
This is being done in stages. I've made this change on the Algorithms project The change consists of removing the manually created DllConfig.h header and replacing it with one generated during the build by cmake. The MANTID_ALGORITHMS_DLL macro defined in DllConfig.had was already partially used in the Algorithms project - so some classes had the attribute DllExport and others already used MANTID_ALGORITHMS_DLL. I've made it so all classes now use MANTID_ALGORITHMS_DLL. The DllExport macro was defined in Kernel\System.h so I've removed this include from a lot of files and replaced it with MantidAlgorithms\DllConfig.h. As an aside the client projects that use Algorithms such as AlgorithmsTest were working without this change so it appears that having DllImport present on a class definition (which is what MANTID_ALGORITHMS_DLL expands to in client executables) is optional
-
Phil Colebrooke authored
-
Anthony authored
-
Anthony authored
Co-Authored-By:
Harrietbrown <49688535+Harrietbrown@users.noreply.github.com>
-
Gigg, Martyn Anthony authored
Replace header guards in qt/scientific_interfaces with pragma once
-
Gigg, Martyn Anthony authored
Replace header guards in MD and MPI algorithms with pragma once
-
Harriet Brown authored
This commit removes the unneeded header guards in IMDDimension.cpp
-
Gigg, Martyn Anthony authored
MatrixWorkspace::findY
-
Gigg, Martyn Anthony authored
Replace header guards in LiveData with pragma once
-
Gigg, Martyn Anthony authored
Replace header guards in DataObjects with pragma once
-
Gigg, Martyn Anthony authored
Replace header guards in DataHandling with pragma once
-
Anthony Lim authored
-
Anthony Lim authored
-