Changeset 1533 for XIOS/dev/branch_openmp/extern/src_ep_dev/ep_message.cpp
- Timestamp:
- 06/08/18 19:34:51 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_openmp/extern/src_ep_dev/ep_message.cpp
r1520 r1533 23 23 24 24 if(EP_PendingRequests->size() == 0) return 0; 25 26 show_EP_PendingRequests(EP_PendingRequests); 25 27 26 28 MPI_Status status; … … 30 32 std::list<MPI_Request* >::iterator it; 31 33 34 // show_EP_PendingRequests(EP_PendingRequests); 35 32 36 33 37 for(it = EP_PendingRequests->begin(); it!=EP_PendingRequests->end(); it++) 34 38 { 39 if(*(*it) == 0) 40 { 41 EP_PendingRequests->erase(it); 42 43 memcheck("EP_PendingRequests["<<ep_rank<<"]->size() = " << EP_PendingRequests->size()); 44 it = EP_PendingRequests->begin(); 45 continue; 46 } 47 48 if((*(*it))->state == 2) 49 { 50 EP_PendingRequests->erase(it); 51 52 memcheck("EP_PendingRequests["<<ep_rank<<"]->size() = " << EP_PendingRequests->size()); 53 it = EP_PendingRequests->begin(); 54 continue; 55 } 56 35 57 Message_Check(((*(*it))->comm)); 36 58 } 59 60 37 61 38 62 39 63 for(it = EP_PendingRequests->begin(); it!=EP_PendingRequests->end(); ) 40 64 { 65 if(*(*it) == 0) 66 { 67 EP_PendingRequests->erase(it); 68 69 memcheck("EP_PendingRequests["<<ep_rank<<"]->size() = " << EP_PendingRequests->size()); 70 it = EP_PendingRequests->begin(); 71 continue; 72 } 73 74 if((*(*it))->state == 2) 75 { 76 EP_PendingRequests->erase(it); 77 78 memcheck("EP_PendingRequests["<<ep_rank<<"]->size() = " << EP_PendingRequests->size()); 79 it = EP_PendingRequests->begin(); 80 continue; 81 } 82 41 83 if((*(*it))->state == 0) 42 84 { … … 81 123 } 82 124 83 if((*(*it))->state == 2) 84 { 85 int ep_rank = ((*(*it))->comm)->ep_comm_ptr->size_rank_info[0].first; 86 memcheck("delete "<< (*(*it)) <<" : in ep_lib::Request_Check, delete (*(*it))"); 87 88 89 int world_rank; 90 MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); 91 if(world_rank==2) 92 { 93 printf("ep %d erased one pending request %p\n", world_rank,*(*it)); 94 } 95 96 EP_PendingRequests->erase(it); 97 98 memcheck("EP_PendingRequests["<<ep_rank<<"]->size() = " << EP_PendingRequests->size()); 99 it = EP_PendingRequests->begin(); 100 continue; 101 } 102 else it++; 103 } 125 it++; 126 } 127 128 show_EP_PendingRequests(EP_PendingRequests); 104 129 } 105 130 … … 178 203 return MPI_SUCCESS; 179 204 } 180 181 182 183 184 185 205 186 206 … … 249 269 return MPI_SUCCESS; 250 270 } 271 272 273 274 void show_EP_PendingRequests(std::list< ep_lib::MPI_Request* > * EP_PendingRequest) 275 { 276 #ifdef _showinfo 277 std::list<MPI_Request* >::iterator it; 278 279 int i=0; 280 281 for(it = EP_PendingRequests->begin(); it!=EP_PendingRequests->end(); it++) 282 { 283 if(*(*it) == 0) 284 { 285 EP_PendingRequests->erase(it); 286 287 memcheck("EP_PendingRequests["<<ep_rank<<"]->size() = " << EP_PendingRequests->size()); 288 it = EP_PendingRequests->begin(); 289 continue; 290 } 291 292 if((*(*it))->state == 2) 293 { 294 EP_PendingRequests->erase(it); 295 296 memcheck("EP_PendingRequests["<<ep_rank<<"]->size() = " << EP_PendingRequests->size()); 297 it = EP_PendingRequests->begin(); 298 continue; 299 } 300 301 if((*(*it))->ep_src>6) 302 printf("EP_PendingRequests[%d] : ep_src = %d, ep_tag = %d, type = %d, state = %d, comm = %d\n", i, (*(*it))->ep_src, (*(*it))->ep_tag, (*(*it))->type, (*(*it))->state, to_mpi_comm(((*(*it))->comm)->mpi_comm)); 303 i++; 304 } 305 #endif 306 307 } 251 308 252 309
Note: See TracChangeset
for help on using the changeset viewer.