aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetLib/src/gdata.cc
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 /Carpet/CarpetLib/src/gdata.cc
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
Diffstat (limited to 'Carpet/CarpetLib/src/gdata.cc')
-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");
}