dfhack fork
 
 
 
 
 
 
Go to file
Pauli f6b0ac7819 Refactor CoreSuspender to fix Console::lineedit exit hangs
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
2018-06-22 17:57:37 +03:00
CMake Remove several unused CMake and Doxygen files 2017-05-11 22:01:57 -04:00
build Make the win64 build/install batch files work with non-C system drives. 2018-05-14 14:15:38 -05:00
depends jsoncpp: Fix (U)Int64 to long int on 64bit linux 2018-06-14 17:24:50 +03:00
dfhack-config Use json for server config. 2017-11-25 11:34:02 +05:30
docs Update changelog for r2 2018-06-21 22:33:21 -04:00
library Refactor CoreSuspender to fix Console::lineedit exit hangs 2018-06-22 17:57:37 +03:00
package Add gdbserver support to linux dfhack script 2018-06-12 20:47:45 +03:00
plugins Checke Console::lineedit error return values 2018-06-22 17:57:37 +03:00
reversing Update Contributing (IDA Freeware 7.0, cl-linux-debug being 32-bit only) 2018-05-06 10:26:14 -06:00
scripts@56a209a9b4 Rename unit_flags1.dead to killed, update submodules/changelog 2018-06-21 11:17:09 -04:00
test Add test runner 2018-02-04 16:00:53 -05:00
travis Add test runner 2018-02-04 16:00:53 -05:00
.gitignore Ignore df_path. again. 2016-10-19 20:00:56 +05:30
.gitmodules Replace submodule URLs with relative URLs 2018-04-23 18:56:29 -05:00
.travis.yml Re-enable IRC notifications 2018-02-05 19:22:07 -05:00
.ycm_extra_conf.py YCM fallback defaults if database lookup fails 2018-06-09 13:15:07 +03:00
CMakeLists.txt Make cuchar check test if c32rtomb is present in system 2018-06-22 17:57:37 +03:00
Contributing.rst Update Contributing (IDA Freeware 7.0, cl-linux-debug being 32-bit only) 2018-05-06 10:26:14 -06:00
LICENSE.rst Add profiler to license file 2018-06-06 20:19:27 +03:00
README.html Fix html redirection to the docs 2016-04-11 09:30:05 +10:00
README.md Fix forum thread link in README.md 2017-06-20 23:47:04 -07:00
conf.py Add logo to docs 2018-05-12 11:02:34 -04:00
dfhack.init-example New tweak: kitchen-prefs-all 2018-05-17 19:47:56 -04:00
index.rst Add a script to automatically generate both changelogs from a single file 2018-04-02 13:43:32 -04:00
onLoad.init-example Remove warn-stuck-trees from onLoad.init-example 2017-12-23 20:49:24 -05:00

README.md

DFHack Readme

Build Status Documentation Status License Github Issues Open Pulls

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.