-smx_activity_t SIMIX_file_open(const char* mount, const char* path, sg_storage_t st)
-{
- if (st->getHost()->isOff())
- THROWF(host_error, 0, "Host %s failed, you cannot call this function", st->getHost()->getCname());
-
- simgrid::kernel::activity::IoImpl* synchro = new simgrid::kernel::activity::IoImpl();
- synchro->host = st->getHost();
- synchro->surf_io = st->pimpl_->open(mount, path);
- synchro->surf_io->setData(synchro);
- XBT_DEBUG("Create io synchro %p", synchro);
-
- return synchro;
-}
-
-//SIMIX FILE CLOSE
-void simcall_HANDLER_file_close(smx_simcall_t simcall, surf_file_t fd, sg_host_t host)
-{
- smx_activity_t synchro = SIMIX_file_close(fd, host);
- synchro->simcalls.push_back(simcall);
- simcall->issuer->waiting_synchro = synchro;
-}
-
-smx_activity_t SIMIX_file_close(surf_file_t file, sg_host_t host)
-{
- if (host->isOff())
- THROWF(host_error, 0, "Host %s failed, you cannot call this function", host->getCname());
-
- simgrid::kernel::activity::IoImpl* synchro = new simgrid::kernel::activity::IoImpl();
- synchro->host = host;
- synchro->surf_io = host->pimpl_->close(file);
- synchro->surf_io->setData(synchro);
- XBT_DEBUG("Create io synchro %p", synchro);
-
- return synchro;
-}
+ /* set surf's synchro */
+ if (MC_is_active() || MC_record_replay_is_active()) {
+ synchro->state_ = SIMIX_DONE;
+ SIMIX_io_finish(synchro);
+ return;
+ }