On Oct 24, 2012, at 9:41 AM, Roy Stogner <royst...@ices.utexas.edu> wrote:

> If we take that default argument away, every single Parallel call in
> app code will have to be changed from something like
> "Parallel::max(a)" into something like "Parallel::max(a,
> mesh.get_libmesh().Communicator_World())", and that's a huge backwards
> compatibility breakage to hit users with.

Wait - no.  I meant I was simply going to take the default argument away for 
development to find all the places *we* need to pass the proper communicator.  
I would not commit that change, only use it as a compile-time tool to find 
where we need to fix things (and therefore have a LibMeshInit object) passed...

> Maybe we could play some tricks with the global LibMeshInit* target to
> make extensions easier to debug?  E.g. the first LibMeshInit object to
> be constructed sets that target from NULL to "this", but then any
> subsequent LibMeshInit objects set it back to NULL, so that if it ever
> mistakenly gets used in a multi-LibMeshInit application the result is
> an immediate and easily-diagnosed segfault rather than a subtle MPI
> error/deadlock.

Sure - I like that idea.

-Ben



------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to