Subject: Re: Possible changes to POSIX abort()
To: Giles Lean <giles@nemeton.com.au>
From: Bill Sommerfeld <sommerfeld@netbsd.org>
List: tech-userlevel
Date: 07/15/2002 20:40:32
> I've seen both process hangs and core files when pthread_* functions
> have been called from signal handlers.  Multithreaded processes and
> signal handling make very awkward companions.

However, note that abort() is a special case, rather akin to panic(),
since *all* threads in the address space are doomed once it's called.

It may perhaps be appropriate to "suspend" other threads first, then
do some cleanup actions, and then terminate the process with a core
file.  Once other threads are suspended, one can make certain
assumptions which might not otherwise be valid..

That said, flushing stdio buffers seems dangerous.  Extremely careful
coding might allow it to be "safe" vs. an asynchronous abort() but I
wouldn't count on it.

						- Bill