aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Radke <tradke@aei.mpg.de>2005-08-16 13:54:00 +0000
committerThomas Radke <tradke@aei.mpg.de>2005-08-16 13:54:00 +0000
commit2f4bbacf1d804b8f66b7d827e2d89b26cf3145dc (patch)
tree9935a3eb4cd4953f52a84c90604d4e8c473f8f4f
parentb3405326ebf651b20b4c44423df62ef23a1bf8f2 (diff)
CarpetLib: bugfix in collective commbuffer scheme
The low-level routine gdata::change_processor() wasn't aware of the collective commbuffers communication scheme. This caused problems with CarpetInterp which still uses this function in order to communicate data. But not for long anymore, another patch is waiting already to be pushed. darcs-hash:20050816135442-776a0-60371ebba14505a9d402bb08a9b0696d4b3d4702.gz
-rw-r--r--Carpet/CarpetLib/src/gdata.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/Carpet/CarpetLib/src/gdata.cc b/Carpet/CarpetLib/src/gdata.cc
index 0d85915d2..26304d808 100644
--- a/Carpet/CarpetLib/src/gdata.cc
+++ b/Carpet/CarpetLib/src/gdata.cc
@@ -68,14 +68,20 @@ void gdata::change_processor (comm_state& state,
const int newproc,
void* const mem)
{
+ // if this function is being called with collective commbuffers turned on,
+ // mimic the old state transitions here
switch (state.thestate) {
case state_post:
+ case state_get_buffer_sizes:
change_processor_recv (state, newproc, mem);
change_processor_send (state, newproc, mem);
break;
case state_wait:
+ case state_fill_send_buffers:
change_processor_wait (state, newproc, mem);
break;
+ case state_empty_recv_buffers:
+ break;
default:
assert(0 and "invalid state");
}