Commit Graph

8500 Commits (c201cf5b7b3faf44e109484ebdcb84a7a0589346)
 

Author SHA1 Message Date
Pauli c201cf5b7b Documentation and Changelog for debug printing and Signal 2018-07-04 15:43:15 +03:00
Pauli 490a855776 Add a test for signal_shared_tag implementation
The test cases check that the signal_shared_tag implementation can be
used and destructed safely from multiple threads.
2018-07-04 15:18:20 +03:00
Pauli 9cfb07f476 Add debug plugin to manage runtime debug filters 2018-07-04 15:18:20 +03:00
Pauli 8a3a05de24 Allow unloading plugins that use std::regex 2018-07-03 15:23:46 +03:00
Pauli ee999ccbdf Implement runtime debug print filtering
The runtime debug print filtering support dynamic debug print selection.
Tis patch only implements basic core support for filtering. The commands
to change the runtime filtering settings will be added in a following
patch.

But even with only this one can change filtering settings by editing
memory using a debugger. It can even be automated by using gdb break
point commands.
2018-07-03 15:23:46 +03:00
lethosor ae5a1fad84 Changelog entry for Screen::zoom (#1332) 2018-07-03 00:32:15 -04:00
lethosor 616675f0ce Merge remote-tracking branch 'suokko/kittens_data_race_fix' into develop 2018-07-03 00:30:36 -04:00
lethosor dc444add10 Fix changelog section for #1318, update scripts 2018-07-03 00:28:29 -04:00
lethosor c449041c11 Merge remote-tracking branch 'suokko/lua_List_setChoices_internal_table_1171' into develop 2018-07-03 00:27:22 -04:00
lethosor c5b3fbf673 Add ruby codefactor fix to changelog, hide double viewscreen_civlistst entry 2018-07-03 00:23:59 -04:00
lethosor 2dd8aea5ab Update changelog, scripts 2018-07-03 00:18:23 -04:00
lethosor a4384a9e98 Core.rst: add dfhack-run anchor, use more sensible example 2018-07-03 00:02:53 -04:00
lethosor c543a17250 Improve RPC port handling
- Use port from remote-server.json in dfhack-run
- Make DFHACK_RUN environment variable take priority over remote-server.json
- Log current port to stderr
2018-07-02 23:53:56 -04:00
lethosor 81a7ddcf92 Merge remote-tracking branch 'suokko/screen_show_memory_leak' into develop 2018-07-02 22:58:11 -04:00
lethosor 7e91173289 Merge remote-tracking branch 'origin/develop-cf-autofix' into develop 2018-07-02 13:44:20 -04:00
lethosor f0ff96f614 Merge remote-tracking branch 'suokko/multibyte_console' into develop 2018-07-02 10:55:03 -04:00
codefactor-io a08f08ae5f [CodeFactor] Apply fixes 2018-07-01 15:25:53 +00:00
Pauli 645ec0d591 Improve kittens thread safety and shutdown with core
The bools could use acquire&release memory order or even relaxed but I
didn't think code was worth auditing for such low level optimizations.
Sequantial consistent is fast enough but much harder to use incorrectly.

The timeLast is protected by CoreSuspender lock. plugin_update is only
called when CoreSuspender lock is held.

The last_menu is protected by trackmenu_flg loads and stores.
2018-06-30 21:53:12 +03:00
Pauli 0727403ac1 Fix devel plugins linking in linux 2018-06-30 21:12:42 +03:00
lethosor 1a4440859c Update xml (viewscreen_civlistst) 2018-06-29 22:33:15 -04:00
lethosor 105ddd86d8 Merge remote-tracking branch 'suokko/jsoncpp_upgrade_to_submodule' into develop 2018-06-29 22:33:00 -04:00
Lethosor 6b067bbba8
Use relative submodule path 2018-06-29 22:29:12 -04:00
lethosor f8250bd8a4 Merge remote-tracking branch 'suokko/missing_isDiplomat_1324' into develop 2018-06-29 22:19:12 -04:00
Lethosor 5d1141e1ec
Add isDiplomat to API section too 2018-06-29 09:26:16 -04:00
Pauli c39a882b57 Add missing Unit::isDiplomat
Fixes #1324
2018-06-29 16:19:18 +03:00
lethosor aad4bbe65c Authors.rst: fix order 2018-06-28 14:26:32 -04:00
lethosor 3c2bfb6f47 Bump to 0.44.11-alpha1, update changelog, xml 2018-06-28 13:31:56 -04:00
lethosor f9dfb5907b Update submodules, authors 2018-06-27 13:57:34 -04:00
Pauli afd942a94b ruby: Support automatic array size from index-enum 2018-06-26 23:48:54 +03:00
lethosor 19627b9221 Bump to 0.44.11 2018-06-24 17:42:31 -04:00
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
Pauli 0bc1db4f07 Make sure hotkeythread exits before cleanup 2018-06-22 17:57:37 +03:00
Pauli 1fc37f8ddc Checke Console::lineedit error return values
Console::lineedit can return -1 to indicate input error and -2 to
indicate the program is closing. But most users don't check possible
unusual return values which can lead to exit hang.
2018-06-22 17:57:37 +03:00
Pauli 84b1361387 Make cuchar check test if c32rtomb is present in system
Fix for mac build where cuchar is present but uchar.h is not.
2018-06-22 17:57:37 +03:00
Pauli 84f8a75a2e Add cuchar fallback implementation for gcc 4 and 5 2018-06-22 17:57:37 +03:00
Pauli 820b787cd0 Add multibyte character handling to posix console
I noticed that multibyte characters can mess up the console state
variables. I decided to add a minimal multibyte support to make sure the
input only collects complete valid multibyte characters in case user
enters them to console.

This change assumes that UTF-32 has one to one mapping between printed
characters and char32 indexes. But I remember reading there is a few
rare corner cases with accents where character might require multiple
4byte characters too. But this patch at least changes correct handling
from about 100 characters to 99% of unicode characters.
2018-06-22 17:57:37 +03:00
Pauli 1acb60daa2 Prevent data races during console/init thread shutdown
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.
2018-06-22 17:57:37 +03:00
Pauli 19a169ba65 Convert Core.cpp to use c++11 thread
I noticed that tthread is missing some c++11 features that make thread
handling code a bit easier. To be able to use those features I decided
to convert Core.cpp to use equivalent standard classes.

This patch has no functional changes.
2018-06-22 17:57:37 +03:00
Pauli b7871c7368 Console-posix: Use lowest possible nfds parameter to the select call 2018-06-22 17:57:37 +03:00
lethosor 8a1979b8a7 Update version in CMakeLists.txt to 0.44.10-r2 2018-06-21 22:34:11 -04:00
lethosor bc08ba6a3b Update changelog for r2 2018-06-21 22:33:21 -04:00
lethosor 9c7bd562d4 fix-unit-occupancy, autogems: stop running while embarking
Related to #1286 fix
2018-06-21 16:16:54 -04:00
lethosor 46e31305a1 Merge remote-tracking branch 'PatrikLundell/embark-assistant' into develop 2018-06-21 15:54:03 -04:00
lethosor f20dae5a4c Merge remote-tracking branch 'suokko/fix_dramp_to_check_jobs_1228' into develop 2018-06-21 15:20:41 -04:00
lethosor 854f467f56 Merge remote-tracking branch 'suokko/check_jobs_on_mapcache_commit_1229' into develop 2018-06-21 15:03:51 -04:00
PatrikLundell 8e1a1851be Removed temporary comments 2018-06-21 21:00:59 +02:00
PatrikLundell 9a8e251853 Updated evil weather 2018-06-21 20:51:36 +02:00
PatrikLundell f02f4b8bcc Updated evil weather 2018-06-21 20:51:05 +02:00
PatrikLundell 91aa16216b Updated evil weather 2018-06-21 20:50:30 +02:00
PatrikLundell 1382c04696 Updated evil weather 2018-06-21 20:49:49 +02:00