You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
replxx-based applications cannot handle CTRL-Z on Linux properly. This key combination sends SIGSTOP.
This situation is VERY bad if your application has multiple threads.
Steps to reproduce single-threaded:
Compile the examples in the replxx repository.
echo ./replxx-example-cxx-api > test.sh
chmod 777 ./test.sh
./test.sh
At the replxx> prompt, press CTRL-Z.
It will ignore all of your remaining input, including CTRL-C. If you press CTRL-Z, then it will stop the application.
If you run "fg" it will continue running. If you have pressed CTRL-C between the two CTRL-Z presses, then the application will receive the SIGINT and exit.
Steps to reproduce multi-threaded:
Add code to cxx-api.cxx to create pthreads. (I created 6 threads.)
I made my code acquire a mutex in main, then create the 6 threads.
Each thread attempts to acquire the mutex lock. They block.
When main is ready to return, it releases the mutex and calls pthread_join() on the six threads.
Bottom line, the threads are doing nothing but existing.
Perform the steps in the single-threaded issue.
After the first CTRL-Z press, the application will not respond to any actions.
You can attach to the PID with gdb and send SIGCONT numerous times (signal SIGCONT) and the application will eventually return to running.
The text was updated successfully, but these errors were encountered:
(( I believe that Marcin Konarski died from COVID on 12/18/2021, if this is his father's X account:
https://x.com/marian_konarski/status/1604590361543905280 ))
replxx-based applications cannot handle CTRL-Z on Linux properly. This key combination sends SIGSTOP.
This situation is VERY bad if your application has multiple threads.
Steps to reproduce single-threaded:
Steps to reproduce multi-threaded:
The text was updated successfully, but these errors were encountered: