[opensuse-programming] pthread cleanup handler not called on pthread_cancel and sometimes pthread_exit
Hi, Since going to opensuse 10.2 we have found a problem with pthread cleanup handlers not being called on pthread_cancel and under certain conditions on pthread_exit from within C++ programs. The issue is that cleanup handlers put onto a threads cleanup stack via pthread_cleanup_push() should be called when a thread is canceled or exits. In some cases that is not happening. This only appears to be an issue with C++ programs that have exceptions enabled (default). It doesn't happen with C programs or if exceptions are disabled by using -fno-exceptions. This is not a viable solution. The issue is well documented as a glibc bug here: http://sourceware.org/bugzilla/show_bug.cgi?id=4123, so I won't repeat all of the details here. Unfortunately, this is a critical bug and it has been sitting open since March 2 without any visible activity other than my recent activity. Does anyone have suggestions about how to possibly work around this issue or to help move things along? Thanks, -- kr --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming+help@opensuse.org
participants (2)
-
K.R. Foley
-
Philipp Thomas