Re: [Libmesh-devel] here(), error(), & friends

2008-03-01 Thread Benjamin Kirk
>>> Do nothing. My MPI library is pretty good about figuring out that >>> when one process dies, the rest can't network write to it anymore and >>> should exit. I'll bet other MPI libraries are just as good. This is >>> basically what happens when there's a segfault, after all. The "do >>> not

Re: [Libmesh-devel] here(), error(), & friends

2008-03-01 Thread Roy Stogner
On Sat, 1 Mar 2008, Benjamin Kirk wrote: > std::set_terminate() returns a pointer to the function we are replacing, > right? Is it possible to use that information? You're right; I wasn't looking at an up to date webpage. We could possibly handle the "user sets a terminate function before we c

Re: [Libmesh-devel] here(), error(), & friends

2008-03-01 Thread Benjamin Kirk
> Apparently the C++ standard is as follows: > > | 15.3 - Handling an exception [except.handle] > ... > | -9- If no matching handler is found in a program, the function > terminate() is called; > > In other words, unless there's actually a try block waiting to catch > any error()-thrown e

Re: [Libmesh-devel] here(), error(), & friends

2008-03-01 Thread Roy Stogner
On Thu, 28 Feb 2008, Benjamin Kirk wrote: >> Seems like a paradox: we can't call MPI_Abort from within error(), >> because error() can't be sure there isn't some enclosing code waiting >> to catch its exception, but we do have to be able to call MPI_Abort >> when error() is called if there is no