[svn-r8400] intercomm Ibarrier modernization and bugfix
authorDavid Goodell <goodell@mcs.anl.gov>
Mon, 11 Apr 2011 22:47:01 +0000 (22:47 +0000)
committerDavid Goodell <goodell@mcs.anl.gov>
Mon, 11 Apr 2011 22:47:01 +0000 (22:47 +0000)
commitfc1d5cedd250d02b65bf226e56f0dbf200b12d29
treee3abf0cac9c134e3273419688611e1872bb20424
parent14732da9de9fce1ccec6f0a3a199af3e62332657
[svn-r8400] intercomm Ibarrier modernization and bugfix

The bug fix was a devilish stack corruption bug that was caused by using
a stack variable as the broadcast buffer.  After MPIR_Ibarrier_inter
returned, the memory for the variable was reused for other purposes,
resulting in erratic corruption and segfaults in the progress engine.
Mallocing the buffer instead resolves this problem.

The modernization includes switching to the MPID_SCHED_BARRIER macro and
dispatching sub-collectives via the coll_fns table instead of statically.

No reviewer.
src/mpi/coll/ibarrier.c