- struct timespec start, stop;
- double accum;
-
- /* initialisation of SD */
- SD_init(&argc, argv);
-
-#if _POSIX_TIMERS > 0
- if( clock_gettime( CLOCK_REALTIME, &start) == -1 ) {
- perror( "clock gettime" );
- return EXIT_FAILURE;
- }
-#else
- struct timeval tv;
- gettimeofday(&tv, NULL);
- start.tv_sec = tv.tv_sec;
- start.tv_nsec = tv.tv_usec*1000;
-#endif
- /* creation of the environment */
- SD_create_environment(argv[1]);
-
-#if _POSIX_TIMERS > 0
- if( clock_gettime( CLOCK_REALTIME, &stop) == -1 ) {
- perror( "clock gettime" );
- return EXIT_FAILURE;
- }
-#else
- gettimeofday(&tv, NULL);
- stop.tv_sec = tv.tv_sec;
- stop.tv_nsec = tv.tv_usec*1000;
-#endif
-
- accum = ( stop.tv_sec - start.tv_sec )
- + (double)( stop.tv_nsec - start.tv_nsec )
- / (double)BILLION;
-
- printf( "%lf\n", accum );
-
- sleep(20);
-
- SD_exit();
-
- return 0;
+ xbt_os_timer_t timer = xbt_os_timer_new();
+ SD_init(&argc, argv);
+
+ /* creation of the environment, timed */
+ xbt_os_cputimer_start(timer);
+ SD_create_environment(argv[1]);
+ xbt_os_cputimer_stop(timer);
+
+ /* Display the result and exit after cleanup */
+ printf( "%f\n", xbt_os_timer_elapsed(timer) );
+ printf("Workstation number: %zu, link number: %d\n", sg_host_count(), sg_link_count());
+ if(argv[2]){
+ printf("Wait for %ss\n",argv[2]);
+ sleep(atoi(argv[2]));
+ }
+
+ SD_exit();
+
+ free(timer);
+ return 0;