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
added circle placement for ns3 wifi nodes
[simgrid.git]
/
src
/
s4u
/
s4u_Io.cpp
diff --git
a/src/s4u/s4u_Io.cpp
b/src/s4u/s4u_Io.cpp
index 7de8c809d5cfdb4cc4342bdafb5d11a8877ca6ce..4831daf91f6bf5d4522736a42a46de209823ec34 100644
(file)
--- a/
src/s4u/s4u_Io.cpp
+++ b/
src/s4u/s4u_Io.cpp
@@
-3,6
+3,7
@@
/* 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. */
+#include "simgrid/s4u/Actor.hpp"
#include "simgrid/s4u/Disk.hpp"
#include "simgrid/s4u/Io.hpp"
#include "simgrid/s4u/Storage.hpp"
#include "simgrid/s4u/Disk.hpp"
#include "simgrid/s4u/Io.hpp"
#include "simgrid/s4u/Storage.hpp"
@@
-43,6
+44,10
@@
Io* Io::start()
.start();
}
});
.start();
}
});
+
+ if (suspended_)
+ pimpl_->suspend();
+
state_ = State::STARTED;
return this;
}
state_ = State::STARTED;
return this;
}
@@
-63,7
+68,9
@@
Io* Io::wait_for(double timeout)
{
if (state_ == State::INITED)
vetoable_start();
{
if (state_ == State::INITED)
vetoable_start();
- simcall_io_wait(get_impl(), timeout);
+
+ kernel::actor::ActorImpl* issuer = Actor::self()->get_impl();
+ kernel::actor::simcall_blocking<void>([this, issuer, timeout] { this->get_impl()->wait_for(issuer, timeout); });
state_ = State::FINISHED;
this->release_dependencies();
return this;
state_ = State::FINISHED;
this->release_dependencies();
return this;