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
Simcall COMM_TEST is not blocking.
[simgrid.git]
/
src
/
kernel
/
activity
/
CommImpl.cpp
diff --git
a/src/kernel/activity/CommImpl.cpp
b/src/kernel/activity/CommImpl.cpp
index 18baf18450d110b16752864211436a4c377e94ea..95f7c05849cc94834f6311c8f70adf12c6dc7741 100644
(file)
--- a/
src/kernel/activity/CommImpl.cpp
+++ b/
src/kernel/activity/CommImpl.cpp
@@
-223,7
+223,7
@@
void simcall_HANDLER_comm_wait(smx_simcall_t simcall, simgrid::kernel::activity:
}
}
}
}
-
void
simcall_HANDLER_comm_test(smx_simcall_t simcall, simgrid::kernel::activity::CommImpl* comm)
+
bool
simcall_HANDLER_comm_test(smx_simcall_t simcall, simgrid::kernel::activity::CommImpl* comm)
{
if ((MC_is_active() || MC_record_replay_is_active()) && comm->src_actor_ && comm->dst_actor_)
comm->state_ = simgrid::kernel::activity::State::DONE;
{
if ((MC_is_active() || MC_record_replay_is_active()) && comm->src_actor_ && comm->dst_actor_)
comm->state_ = simgrid::kernel::activity::State::DONE;
@@
-231,13
+231,9
@@
void simcall_HANDLER_comm_test(smx_simcall_t simcall, simgrid::kernel::activity:
bool res = comm->state_ != simgrid::kernel::activity::State::WAITING &&
comm->state_ != simgrid::kernel::activity::State::RUNNING;
bool res = comm->state_ != simgrid::kernel::activity::State::WAITING &&
comm->state_ != simgrid::kernel::activity::State::RUNNING;
- simcall_comm_test__set__result(simcall, res);
- if (res) {
- comm->simcalls_.push_back(simcall);
+ if (res)
comm->finish();
comm->finish();
- } else {
- simcall->issuer_->simcall_answer();
- }
+ return res;
}
void simcall_HANDLER_comm_testany(smx_simcall_t simcall, simgrid::kernel::activity::CommImpl* comms[], size_t count)
}
void simcall_HANDLER_comm_testany(smx_simcall_t simcall, simgrid::kernel::activity::CommImpl* comms[], size_t count)