X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/dceed88b84f4c8dccf94f8031cc9ba635eaf75da..6ccef0a7af1ab9d024bc2e6269be292b10c448cb:/teshsuite/s4u/listen_async/listen_async.cpp diff --git a/teshsuite/s4u/listen_async/listen_async.cpp b/teshsuite/s4u/listen_async/listen_async.cpp index 7e07dc9d46..0951f56316 100644 --- a/teshsuite/s4u/listen_async/listen_async.cpp +++ b/teshsuite/s4u/listen_async/listen_async.cpp @@ -17,41 +17,40 @@ static void server() { simgrid::s4u::MailboxPtr mailbox = simgrid::s4u::Mailbox::byName("mailbox"); - simgrid::s4u::CommPtr sendComm = mailbox->put_async(xbt_strdup("Some data"), 0); + 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"); - char* res = static_cast(mailbox->get()); + std::string* res = static_cast(mailbox->get()); - xbt_assert(not strcmp("Some data", res), "Data received: %s", res); + xbt_assert(*res == "Some data", "Data received: %s", res->c_str()); XBT_INFO("Data successfully received from regular mailbox"); - xbt_free(res); + delete res; sendComm->wait(); simgrid::s4u::MailboxPtr mailbox2 = simgrid::s4u::Mailbox::byName("mailbox2"); mailbox2->setReceiver(simgrid::s4u::Actor::self()); - mailbox2->put_init(xbt_strdup("More data"), 0)->detach(); + 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()); - xbt_assert(not strcmp("More data", res)); - xbt_free(res); + res = static_cast(mailbox2->get()); + xbt_assert(*res == "More data"); + delete res; XBT_INFO("Data successfully received from asynchronous mailbox"); } int main(int argc, char* argv[]) { - simgrid::s4u::Engine* e = new simgrid::s4u::Engine(&argc, argv); - e->loadPlatform(argv[1]); + simgrid::s4u::Engine e(&argc, argv); + e.loadPlatform(argv[1]); simgrid::s4u::Actor::createActor("test", simgrid::s4u::Host::by_name("Tremblay"), server); - e->run(); + e.run(); - delete e; return 0; }