Remove useless tinythread import in PlugLoad-windows.cpp
Remove seemingly useless tinythread import in LuaTools.cpp
Factor out tinythread in LuaApi.cpp
Removed unused tinythread in LuaWrapper.cpp
Removed unused tinythread include in LuaTypes.cpp
Removed unused tinythread include in ColorText.cpp
Factor out tinythread in Console.h
Factor out tinythread in Console-posix.cpp
Factor out tinythread in Console-windows.cpp
Factor out tinythread in renderer_light
Factor out tinythread in DataDefs.cpp
Remove unused tinythread include in RemoteClient.cpp
Add includes for new mutex and conditional_variable usages in PluginManager
Factor out tinythread from devel/memview, renderermax/renderer_light, and rendermax/renderer_opengl plugins
Remove usages of tinythread in various CMakeLists.txt files, in .ycm_extra_conf.py, and delete tinythread itself
Delete tinythread from LISCENSE.rst
excise tinythread: fix deadlock in pluginmanager
excise tinythread: remove improper header
excise tinythread: fix double unlock. fix plugin typo
Before, calling `dfhack.run_command('tiletypes')` from a `dfhack.timeout` callback would leave the console in a broken state, since raw mode was enabled but never disabled.
Only tested on Linux with a supported terminal.
There is a minor chance that console or init thread would access already
freed memory when core is shutting down and cleaning up state. To avoid
any danger of having random bugs caused by the potential data race I
decided to make sure the shutdown code waits for the thread to exit
first.
Windows change is completely untested. It is purely based on msdn
documentation.
This is an incompatible change to the plugin ABI.
The Console is not thread-safe unless used indirectly
via color_ostream_proxy, so everything should use their
per-thread stream.