
Hi Nick, can you please file a ticket with your example code so that we do not forget about this? I understand the issue but the fix will not be easy. Matthias On 12 Jun 2009, at 13:16, Nick Collier wrote:
I running into an issue where an irecv followed by a send results in deadlock. A simple test case,
class Item { private:
friend class boost::serialization::access;
template<class Archive> void serialize(Archive& ar, const unsigned int version) { ar & val; }
public: int val; Item() : val(1) { }
};
struct Receipt {
boost::mpi::request request; std::vector<Item> items; };
int main(int argc, char **argv) {
mpi::environment env(argc, argv); mpi::communicator world; Receipt receipt;
vector<Item> msg(100000);
int other = world.rank() == 0 ? 1 : 0; cout << world.rank() << " irecv from " << other << endl; receipt.request = world.irecv(other, 0, receipt.items); cout << world.rank() << " sending to " << other << endl; world.send(other, 0, msg);
receipt.request.wait();
cout << "Done" << endl; }
Run with mpirun -np 2, this never completes. It does complete with vector<Item> msg(10) however.
Nick
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users