/* We want to make sure that GC_thread_exit_proc() is unconditionally */ /* invoked, even if the client is not compiled with -fexceptions, but */ /* the GC is. The workaround is to put GC_inner_start_routine() in its */ /* own file (pthread_start.c), and undefine __EXCEPTIONS in the GCC */ /* case at the top of the file. FIXME: it's still unclear whether this */ /* will actually cause the exit handler to be invoked last when */ /* thread_exit is called (and if -fexceptions is used). */ #if !defined(DONT_UNDEF_EXCEPTIONS) && defined(__GNUC__) && defined(__linux__) /* We undefine __EXCEPTIONS to avoid using GCC __cleanup__ attribute. */ /* The current NPTL implementation of pthread_cleanup_push uses */ /* __cleanup__ attribute when __EXCEPTIONS is defined (-fexceptions). */ /* The stack unwinding and cleanup with __cleanup__ attributes work */ /* correctly when everything is compiled with -fexceptions, but it is */ /* not the requirement for this library clients to use -fexceptions */ /* everywhere. With __EXCEPTIONS undefined, the cleanup routines are */ /* registered with __pthread_register_cancel thus should work anyway. */ # undef __EXCEPTIONS #endif
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.