Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
plug a memleak
[simgrid.git] / examples / s4u / io / s4u_io.cpp
index b5a06a9..d5c24cf 100644 (file)
@@ -3,11 +3,9 @@
 /* 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 <map>
 #include <unordered_map>
-#include <vector>
 
-#include "simgrid/s4u.h"
+#include "simgrid/s4u.hpp"
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "a sample log category");
 
@@ -41,18 +39,17 @@ public:
     // Open an non-existing file to create it
     const char *filename = "/home/tmp/data.txt";
     simgrid::s4u::File *file = new simgrid::s4u::File(filename, NULL);
-    sg_size_t write, read, file_size;
 
-    write = file->write(200000);  // Write 200,000 bytes
+    sg_size_t write = file->write(200000);  // Write 200,000 bytes
     XBT_INFO("Create a %llu bytes file named '%s' on /sd1", write, filename);
 
     // check that sizes have changed
     show_info(mounts);
 
     // Now retrieve the size of created file and read it completely
-    file_size = file->size();
+    const sg_size_t file_size = file->size();
     file->seek(0);
-    read = file->read(file_size);
+    const sg_size_t read = file->read(file_size);
     XBT_INFO("Read %llu bytes on %s", read, filename);
 
     // Now write 100,000 bytes in tmp/data.txt
@@ -69,6 +66,7 @@ public:
     // Test attaching some user data to the file
     file->setUserdata(xbt_strdup("777"));
     XBT_INFO("User data attached to the file: %s", (char*)file->userdata());
+    xbt_free(file->userdata());
 
     // Close the file
     delete file;
@@ -106,7 +104,7 @@ int main(int argc, char **argv)
 {
   simgrid::s4u::Engine *e = new simgrid::s4u::Engine(&argc,argv);
   e->loadPlatform("../../platforms/storage/storage.xml");
-  new simgrid::s4u::Actor("host", simgrid::s4u::Host::by_name("denise"), MyHost());
+  simgrid::s4u::Actor::createActor("host", simgrid::s4u::Host::by_name("denise"), MyHost());
   e->run();
   return 0;
 }