X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8c416e92254512408c1d0ce729e8d3cf82ec9938..5ed37babb2fa9097abe82df299c0aa259ed84d5a:/teshsuite/s4u/listen_async/listen_async.cpp?ds=sidebyside diff --git a/teshsuite/s4u/listen_async/listen_async.cpp b/teshsuite/s4u/listen_async/listen_async.cpp index c9ca453b1f..6a00d1ee93 100644 --- a/teshsuite/s4u/listen_async/listen_async.cpp +++ b/teshsuite/s4u/listen_async/listen_async.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2017-2018. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2017-2023. 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. */ @@ -6,7 +6,7 @@ /* Bug report: https://github.com/simgrid/simgrid/issues/40 * * Task.listen used to be on async mailboxes as it always returned false. - * This occures in Java and C, but is only tested here in C. + * This occurs in Java and C, but is only tested here in C. */ #include "simgrid/s4u.hpp" @@ -15,30 +15,31 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "Messages specific for this s4u example") static void server() { - simgrid::s4u::MailboxPtr mailbox = simgrid::s4u::Mailbox::byName("mailbox"); + simgrid::s4u::Mailbox* mailbox = simgrid::s4u::Mailbox::by_name("mailbox"); simgrid::s4u::CommPtr sendComm = mailbox->put_async(new std::string("Some data"), 0); xbt_assert(mailbox->listen()); // True (1) XBT_INFO("Task listen works on regular mailboxes"); - std::string* res = static_cast(mailbox->get()); + XBT_INFO("Mailbox::listen_from() returns %ld (should return my pid, which is %ld)", mailbox->listen_from(), + simgrid::s4u::this_actor::get_pid()); + + auto res = mailbox->get_unique(); xbt_assert(*res == "Some data", "Data received: %s", res->c_str()); XBT_INFO("Data successfully received from regular mailbox"); - delete res; sendComm->wait(); - simgrid::s4u::MailboxPtr mailbox2 = simgrid::s4u::Mailbox::byName("mailbox2"); - mailbox2->setReceiver(simgrid::s4u::Actor::self()); + simgrid::s4u::Mailbox* mailbox2 = simgrid::s4u::Mailbox::by_name("mailbox2"); + mailbox2->set_receiver(simgrid::s4u::Actor::self()); mailbox2->put_init(new std::string("More data"), 0)->detach(); xbt_assert(mailbox2->listen()); // used to break. XBT_INFO("Task listen works on asynchronous mailboxes"); - res = static_cast(mailbox2->get()); + res = mailbox2->get_unique(); xbt_assert(*res == "More data"); - delete res; XBT_INFO("Data successfully received from asynchronous mailbox"); } @@ -48,7 +49,7 @@ int main(int argc, char* argv[]) simgrid::s4u::Engine e(&argc, argv); e.load_platform(argv[1]); - simgrid::s4u::Actor::create("test", simgrid::s4u::Host::by_name("Tremblay"), server); + simgrid::s4u::Actor::create("test", e.host_by_name("Tremblay"), server); e.run();