mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
posix main: hotfix for px4 application not exiting anymore
Some threads do not exit and are still running when trying to exit SITL running under Windows in Cygwin. This problem was introduced with: - posix shell #10173 because of strating a child process for the startup script and mixing up the signal handling (only Ctrl+C broken) - lockstep #10648 because of simulator threads not stopping gracefully anymore with timing race conditions (no graceful exit possible anymore) I leave the SIGINT handler on its default implementation for Cygwin which kills the process and all its threads when pressing Ctrl+C. This hotfix at least allows the usage of Ctrl+C again instead of forcing the user to use the task manager to shut down px4.exe going crazy on CPU load instead of exiting everytime.
This commit is contained in:
parent
7097c0a1b8
commit
bda60ecfd6
@ -407,7 +407,14 @@ void register_sig_handler()
|
||||
sig_segv.sa_handler = sig_segv_handler;
|
||||
sig_segv.sa_flags = SA_RESTART | SA_SIGINFO;
|
||||
|
||||
#ifdef __PX4_CYGWIN
|
||||
// Do not catch SIGINT on Cygwin such that the process gets killed
|
||||
// TODO: All threads should exit gracefully see https://github.com/PX4/Firmware/issues/11027
|
||||
(void)sig_int; // this variable is unused
|
||||
#else
|
||||
sigaction(SIGINT, &sig_int, nullptr);
|
||||
#endif
|
||||
|
||||
//sigaction(SIGTERM, &sig_int, nullptr);
|
||||
sigaction(SIGFPE, &sig_fpe, nullptr);
|
||||
sigaction(SIGPIPE, &sig_pipe, nullptr);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user