A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update copyright lines for 2023.
[simgrid.git]
/
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
c9ca453
..
6a00d1e
100644
(file)
--- a/
teshsuite/s4u/listen_async/listen_async.cpp
+++ b/
teshsuite/s4u/listen_async/listen_async.cpp
@@
-1,4
+1,4
@@
-/* Copyright (c) 2017-20
18
. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2017-20
23
. 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 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.
/* Bug report: https://github.com/simgrid/simgrid/issues/40
*
* Task.listen used to be on async mailboxes as it always returned false.
- * This occur
e
s 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"
*/
#include "simgrid/s4u.hpp"
@@
-15,30
+15,31
@@
XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "Messages specific for this s4u example")
static void server()
{
static void server()
{
- simgrid::s4u::Mailbox
Ptr mailbox = simgrid::s4u::Mailbox::byN
ame("mailbox");
+ simgrid::s4u::Mailbox
* mailbox = simgrid::s4u::Mailbox::by_n
ame("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");
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<std::string*>(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<std::string>();
xbt_assert(*res == "Some data", "Data received: %s", res->c_str());
XBT_INFO("Data successfully received from regular mailbox");
xbt_assert(*res == "Some data", "Data received: %s", res->c_str());
XBT_INFO("Data successfully received from regular mailbox");
- delete res;
sendComm->wait();
sendComm->wait();
- simgrid::s4u::Mailbox
Ptr mailbox2 = simgrid::s4u::Mailbox::byN
ame("mailbox2");
- mailbox2->set
R
eceiver(simgrid::s4u::Actor::self());
+ simgrid::s4u::Mailbox
* mailbox2 = simgrid::s4u::Mailbox::by_n
ame("mailbox2");
+ mailbox2->set
_r
eceiver(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");
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<std::string*>(mailbox2->get()
);
+ res =
mailbox2->get_unique<std::string>(
);
xbt_assert(*res == "More data");
xbt_assert(*res == "More data");
- delete res;
XBT_INFO("Data successfully received from asynchronous mailbox");
}
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::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();
e.run();