-/* Copyright (c) 2011-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2011-2021. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
}
/* This process is responsible for all processes that have bits
- set from the LSB upto (but not including) mask. Because of
+ set from the LSB up to (but not including) mask. Because of
the "not including", we start by shifting mask back down
one. */
position = 0;
if (rank == root) {
mpi_errno = datatype->pack(buffer, count, tmp_buf, nbytes, &position, comm);
- if (mpi_errno)
- xbt_die("crash while packing %d", mpi_errno);
+ xbt_assert(mpi_errno == 0, "crash while packing %d", mpi_errno);
}
}
mpi_errno = scatter_for_bcast(root, comm,
nbytes, tmp_buf);
- if (mpi_errno) {
- xbt_die("crash while scattering %d", mpi_errno);
- }
+ xbt_assert(mpi_errno == 0, "crash while scattering %d", mpi_errno);
/* curr_size is the amount of data that this process now has stored in
* buffer at byte offset (relative_rank*scatter_size) */
/* check that we received as much as we expected */
/* recvd_size may not be accurate for packed heterogeneous data */
- if (is_homogeneous && curr_size != nbytes) {
- xbt_die("we didn't receive enough !");
- }
+ xbt_assert(not is_homogeneous || curr_size == nbytes, "we didn't receive enough !");
if (not is_contig || not is_homogeneous) {
if (rank != root) {
position = 0;
mpi_errno = MPI_Unpack(tmp_buf, nbytes, &position, buffer, count, datatype, comm);
- if (mpi_errno)
- xbt_die("error when unpacking %d", mpi_errno);
+ xbt_assert(mpi_errno == 0, "error when unpacking %d", mpi_errno);
}
}