- else
- xbt_die("Can't find mount point for '%s' on '%s'", fullpath, piface_->name().c_str());
-
- XBT_DEBUG("OPEN %s on disk '%s'",path, st->getName());
- Action *action = st->open((const char*)mount_name, (const char*)path);
- free((char*)path);
- free((char*)mount_name);
- return action;
-}
-
-Action *HostImpl::close(surf_file_t fd) {
- simgrid::surf::Storage *st = findStorageOnMountList(fd->mount);
- XBT_DEBUG("CLOSE %s on disk '%s'",fd->name, st->getName());
- return st->close(fd);
-}
-
-Action *HostImpl::read(surf_file_t fd, sg_size_t size) {
- simgrid::surf::Storage *st = findStorageOnMountList(fd->mount);
- XBT_DEBUG("READ %s on disk '%s'",fd->name, st->getName());
- return st->read(fd, size);
-}
-
-Action *HostImpl::write(surf_file_t fd, sg_size_t size) {
- simgrid::surf::Storage *st = findStorageOnMountList(fd->mount);
- XBT_DEBUG("WRITE %s on disk '%s'",fd->name, st->getName());
- return st->write(fd, size);
-}
-
-int HostImpl::unlink(surf_file_t fd) {
- if (!fd){
- XBT_WARN("No such file descriptor. Impossible to unlink");
- return -1;
- } else {
-
- simgrid::surf::Storage *st = findStorageOnMountList(fd->mount);
- /* Check if the file is on this storage */
- if (!xbt_dict_get_or_null(st->content_, fd->name)){
- XBT_WARN("File %s is not on disk %s. Impossible to unlink", fd->name,
- st->getName());
- return -1;
- } else {
- XBT_DEBUG("UNLINK %s on disk '%s'",fd->name, st->getName());
- st->usedSize_ -= fd->size;
-
- // Remove the file from storage
- xbt_dict_remove(st->content_, fd->name);
-
- xbt_free(fd->name);
- xbt_free(fd->mount);
- xbt_free(fd);
- return 0;
- }
- }
-}
-
-sg_size_t HostImpl::getSize(surf_file_t fd){
- return fd->size;
-}
-
-xbt_dynar_t HostImpl::getInfo( surf_file_t fd)
+ // When a host is turned off, we want to keep only the actors that should restart for when it will boot again.
+ // Then get rid of the others.
+ auto elm = remove_if(begin(actors_at_boot_), end(actors_at_boot_), [](kernel::actor::ProcessArg* arg) {
+ if (arg->auto_restart)
+ return false;
+ delete arg;
+ return true;
+ });
+ actors_at_boot_.erase(elm, end(actors_at_boot_));
+}
+
+std::vector<s4u::ActorPtr> HostImpl::get_all_actors()