diff --git a/src/sync/sync_tcp.cpp b/src/sync/sync_tcp.cpp index 2cb4e598e..b21451d1c 100644 --- a/src/sync/sync_tcp.cpp +++ b/src/sync/sync_tcp.cpp @@ -258,8 +258,10 @@ class SyncManager { size_t nfinished = size_down_in; // can pass message down to childs for (int i = 0; i < nlink; ++i) { - if (i != parent_index && selecter.CheckWrite(links[i].sock)) { - links[i].WriteFromArray(sendrecvbuf, size_down_in); + if (i != parent_index) { + if (selecter.CheckWrite(links[i].sock)) { + links[i].WriteFromArray(sendrecvbuf, size_down_in); + } nfinished = std::min(links[i].size_write, nfinished); } } @@ -319,8 +321,10 @@ class SyncManager { size_t nfinished = total_size; // send data to all out-link for (int i = 0; i < nlink; ++i) { - if (i != in_link && selecter.CheckWrite(links[i].sock)) { - links[i].WriteFromArray(sendrecvbuf_, size_in); + if (i != in_link) { + if (selecter.CheckWrite(links[i].sock)) { + links[i].WriteFromArray(sendrecvbuf_, size_in); + } nfinished = std::min(nfinished, links[i].size_write); } } diff --git a/test/test_allreduce.cpp b/test/test_allreduce.cpp index 496039e28..4a47d7f55 100644 --- a/test/test_allreduce.cpp +++ b/test/test_allreduce.cpp @@ -113,8 +113,11 @@ int main(int argc, char *argv[]) { std::string name = sync::GetProcessorName(); printf("[%d] start at %s\n", rank, name.c_str()); TestMax(n); + printf("[%d] TestMax pass\n", rank); TestSum(n); + printf("[%d] TestSum pass\n", rank); TestReducer(n); + printf("[%d] TestReducer pass\n", rank); sync::Finalize(); printf("[%d] all check pass\n", rank); return 0;