return MPI_ERR_BUFFER;
if(size<0)
return MPI_ERR_ARG;
- smpi_process()->set_bsend_buffer(buf, size);
- return MPI_SUCCESS;
+ return smpi_process()->set_bsend_buffer(buf, size);
}
int PMPI_Buffer_detach(void* buffer, int* size){
smpi_process()->bsend_buffer((void**)buffer, size);
- smpi_process()->set_bsend_buffer(nullptr, 0);
- return MPI_SUCCESS;
+ return smpi_process()->set_bsend_buffer(nullptr, 0);
}
void set_optind(int optind);
MPI_Info info_env();
void bsend_buffer(void** buf, int* size);
- void set_bsend_buffer(void* buf, int size);
+ int set_bsend_buffer(void* buf, int size);
};
} // namespace smpi
*size = bsend_buffer_size_;
}
-void ActorExt::set_bsend_buffer(void* buf, int size)
+int ActorExt::set_bsend_buffer(void* buf, int size)
{
+ if(buf!=nullptr && bsend_buffer_!=nullptr)
+ return MPI_ERR_BUFFER;
bsend_buffer_ = buf;
bsend_buffer_size_= size;
+ return MPI_SUCCESS;
}
} // namespace smpi