
Apparently abort() calls raise(SIGABRT) under Linux. /* This prints an "Assertion failed" message and aborts. */ extern void __assert_fail (const char *__assertion, const char *__file, unsigned int __line, const char *__function) __THROW __attribute__ ((__noreturn__)); And I guess that one way to abort is to throw an __attribute__ ((__noreturn__)). Or, perhaps more likely, it is throwing into no catch() and then throwing itself causes an abort() due to no handler being present above atexit(). bien ________________________________ From: Vinícius dos Santos Oliveira <vini.ipsmaker@gmail.com> Sent: Friday, April 26, 2024 10:05 AM To: boost@lists.boost.org <boost@lists.boost.org> Cc: David Bien <davidbien@hotmail.com> Subject: Re: [boost] BOOST_THREAD_HAS_EINTR_BUG... Em sex., 26 de abr. de 2024 às 13:51, David Bien via Boost <boost@lists.boost.org> escreveu:
Under Linux when BOOST_THREAD_HAS_EINTR_BUG is defined we SIGABRT at this:
~mutex() { BOOST_VERIFY(!posix::pthread_mutex_destroy(&m)); }
How is the code for BOOST_THREAD_HAS_NO_EINTR_BUG? Are UNIX signals being involved? -- Vinícius dos Santos Oliveira https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fvinipsmaker.github.io%2F&data=05%7C02%7C%7Ca3335f7546f240f606ae08dc661307e6%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C638497479127208113%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=Z4o45i1vO7qyfLVFSBFq8purCVRwxe7CVU3nu7lxarA%3D&reserved=0<https://vinipsmaker.github.io/>