------- Comment #8 from pinskia at gcc dot gnu dot org 2010-09-02 00:44 ------- Doing: catch (int i) { Guard g(ioSync);
cout << "Caught " << i << endl << flush; sched_yield(); pthread_testcancel(); } Fixes the issue. Note there is a blog entry about POSIX thread cancel and C++ exceptions by Uli somewhere. There was huge discussion on a mailing list about it too. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45479