boostorg / asio

Boost.org asio module
http://boost.org/libs/asio
1.25k stars 418 forks source link

Signals not received when building with link time optimization enabled and using asio as static library #403

Open ni-tschuett opened 2 years ago

ni-tschuett commented 2 years ago

We are using asio as a static library instead of header only, boost version 1.78. We instantiate a boost::asio::signal_set in the main thread of our application but do not receive any signals when building with link time optimization enabled (using gcc9/10). With making get_signal_state() (signal_set_service.ipp) BOOST_NOINLINE the issue does not occur and signals are again received properly.

timblechmann commented 2 years ago

the NOINLINE is a compiler barrier here. makes me wonder if there's any missing volatile (especially when meditating about https://stackoverflow.com/a/57679370)