xbt_assert(ref, "Cannot match recv against null reference");
xbt_assert(req, "Cannot match recv against null request");
- if((ref->src_ == MPI_ANY_SOURCE || req->src_ == ref->src_)
+ if(((ref->src_ == MPI_ANY_SOURCE && (ref->comm_->group()->rank(req->src_) != MPI_UNDEFINED)) || req->src_ == ref->src_)
&& ((ref->tag_ == MPI_ANY_TAG && req->tag_ >=0) || req->tag_ == ref->tag_)){
//we match, we can transfer some values
if(ref->src_ == MPI_ANY_SOURCE)
xbt_assert(ref, "Cannot match send against null reference");
xbt_assert(req, "Cannot match send against null request");
- if((req->src_ == MPI_ANY_SOURCE || req->src_ == ref->src_)
+ if(((req->src_ == MPI_ANY_SOURCE && (req->comm_->group()->rank(ref->src_) != MPI_UNDEFINED)) || req->src_ == ref->src_)
&& ((req->tag_ == MPI_ANY_TAG && ref->tag_ >=0)|| req->tag_ == ref->tag_)){
if(req->src_ == MPI_ANY_SOURCE)
req->real_src_ = ref->src_;
if ((*request)->action_ != nullptr){
try{
*flag = simcall_comm_test((*request)->action_);
- }catch (xbt_ex& e) {
+ } catch (const xbt_ex&) {
*flag = 0;
return ret;
}
simcall_process_sleep(nsleeps*smpi_test_sleep);
try{
i = simcall_comm_testany(comms.data(), comms.size()); // The i-th element in comms matches!
- }catch (xbt_ex& e) {
+ } catch (const xbt_ex&) {
return 0;
}
int count=(*request)->size_/ (*request)->old_type_->size();
(*request)->op_->apply(buf, (*request)->buf_, &count, (*request)->old_type_);
}
- smpi_free_tmp_buffer(buf);
+ smpi_free_tmp_buffer(static_cast<unsigned char*>(buf));
}
}
if((*request)->nbc_requests_[i]!=MPI_REQUEST_NULL)
try{
// this is not a detached send
simcall_comm_wait((*request)->action_, -1.0);
- }catch (xbt_ex& e) {
+ } catch (const xbt_ex&) {
XBT_VERB("Request cancelled");
}
}
try{
// this is not a detached send
i = simcall_comm_waitany(comms.data(), comms.size(), -1);
- }catch (xbt_ex& e) {
- XBT_INFO("request %d cancelled ",i);
+ } catch (const xbt_ex&) {
+ XBT_INFO("request %d cancelled ", i);
return i;
}