Commit Graph

6 Commits (5396ffb71fa4169d031776de6ff96af09059e39b)

Author SHA1 Message Date
Aleksei Bavshin 5da268077c
fix(util): protect std::condition_variable methods from pthread_cancel
The changes in GCC 11.x made `std::condition_variable` implementation
internals `noexcept`. `noexcept` is known to interact particularly bad
with `pthread_cancel`, i.e. `__cxxabiv1::__force_unwind` passing through
the `noexcept` call stack frame causes a `std::terminate` call and
immediate termination of the program

Digging through the GCC ML archives[1] lead me to the idea of patching
this with a few pthread_setcancelstate's. As bad as the solution is, it
seems to be the best we can do within C++17 limits and without major
rework.

[1]: https://gcc.gnu.org/legacy-ml/gcc/2017-08/msg00156.html
2021-06-12 12:56:44 -07:00
Alex 6e7f22ac3a fix: cancel thread and fix window close 2020-05-27 09:10:38 +02:00
Alex 564fdcb369 fix(custom): exit status 2019-06-11 22:09:47 +02:00
Alex 6ed8f94dab refactor: format code 2019-04-18 17:52:00 +02:00
hoellen 38fa7ceab1 add signalhandler for module update 2019-03-18 18:46:44 +01:00
Alexis 399f61df98 refactor: proper modules destruction 2019-01-13 22:22:22 +01:00