f6b0ac7819
The old CoreSuspender requires processing from Core::Update to allow commands execute. But that causes issues if Core::Shutdown wants quarentee cleanup order with std:🧵:join. Fixing shutdown ordering adds too many branches to already fairly complex code. I decided to try to refactor CoreSuspender to use simpler locking locking using a std::recusive_muted as primary synchronization primitive. To help control when Core::Update unlocks the primary mutex there is std::contition_variable_any and std::atomic<size_t> queue lenght counter. The last state variable is std::atomic<std:🧵:id> that is used to keep track of owner thread for Core::IsSuspended query. This should be merged only just after a release to make sure that it gets maximum testing in develop branch before next release. Fixes #1066 |
||
---|---|---|
CMake | ||
build | ||
depends | ||
dfhack-config | ||
docs | ||
library | ||
package | ||
plugins | ||
reversing | ||
scripts@56a209a9b4 | ||
test | ||
travis | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
.ycm_extra_conf.py | ||
CMakeLists.txt | ||
Contributing.rst | ||
LICENSE.rst | ||
README.html | ||
README.md | ||
conf.py | ||
dfhack.init-example | ||
index.rst | ||
onLoad.init-example |
README.md
DFHack Readme
DFHack is a Dwarf Fortress memory access library, distributed with scripts and plugins implementing a wide variety of useful functions and tools.
The full documentation is available online here,
from the README.html page in the DFHack distribution, or as raw text in the ./docs
folder.
If you're an end-user, modder, or interested in contributing to DFHack -
go read those docs.
If that's unclear or you need more help, try the Bay12 forums thread or the #dfhack IRC channel on freenode.