SIGABRT シグナルを処理するシグナル ハンドラで問題に直面しています。そのため、誰かが SIGABRT を受け取った後は、他のスレッドは実行できません。これにより、プログラムの不適切なクラッシュが発生します。ただし、SIGSEGV の処理中は、適切にスケジュールされ、他のスレッドを実行できます。
シグナルを受信すると、いくつかの回復メカニズムを別のスレッドにポストします。sigsegv の場合は実行されますが、SIGABRT の場合はスレッド自体がスケジュールされていないため実行されません。
参考までに: 150 を超えるスレッドを持つプロセスに優先度ベースの RR スケジューリングを使用しています。