diff options
author | Thomas Radke <tradke@aei.mpg.de> | 2005-08-16 13:54:00 +0000 |
---|---|---|
committer | Thomas Radke <tradke@aei.mpg.de> | 2005-08-16 13:54:00 +0000 |
commit | 2f4bbacf1d804b8f66b7d827e2d89b26cf3145dc (patch) | |
tree | 9935a3eb4cd4953f52a84c90604d4e8c473f8f4f /Carpet/CarpetLib/src/gdata.cc | |
parent | b3405326ebf651b20b4c44423df62ef23a1bf8f2 (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.cc | 6 |
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"); } |