misc/vim: inform the user when no results are found
[nit.git] / lib / realtime.nit
index 38a601c..3a02d86 100644 (file)
@@ -11,7 +11,7 @@
 # another product.
 
 # Provides the Clock utility class to keep time of real time flow
-module realtime is c_linker_option("-lrt")
+module realtime is ldflags "-lrt"
 
 in "C header" `{
 #ifdef _POSIX_C_SOURCE
@@ -21,17 +21,24 @@ in "C header" `{
 #include <time.h>
 `}
 
+# Elapsed time representation.
 extern class Timespec `{struct timespec*`}
+
+       # Init a new Timespec from `s` seconds and `ns` nanoseconds.
        new ( s, ns : Int ) `{
                struct timespec* tv = malloc( sizeof(struct timespec) );
                tv->tv_sec = s; tv->tv_nsec = ns;
                return tv;
        `}
+
+       # Init a new Timespec from now.
        new monotonic_now `{
                struct timespec* tv = malloc( sizeof(struct timespec) );
                clock_gettime( CLOCK_MONOTONIC, tv );
                return tv;
        `}
+
+       # Init a new Timespec copied from another.
        new copy_of( other : Timespec ) `{
                struct timespec* tv = malloc( sizeof(struct timespec) );
                tv->tv_sec = other->tv_sec;
@@ -39,9 +46,12 @@ extern class Timespec `{struct timespec*`}
                return tv;
        `}
 
+       # Update `self` clock.
        fun update `{
                clock_gettime( CLOCK_MONOTONIC, recv );
        `}
+
+       # Substract a Timespec from `self`.
        fun - ( o : Timespec ) : Timespec
        do
                var s = sec - o.sec
@@ -50,17 +60,18 @@ extern class Timespec `{struct timespec*`}
                return new Timespec( s, ns )
        end
 
+       # Number of whole seconds of elapsed time.
        fun sec : Int `{
                return recv->tv_sec;
        `}
+
+       # Rest of the elapsed time (a fraction of a second).
+       #
+       # Number of nanoseconds.
        fun nanosec : Int `{
                return recv->tv_nsec;
        `}
 
-       fun destroy `{
-               free( recv );
-       `}
-
        # Seconds in Float
        # Loss of precision but great to print
        fun to_f: Float do return sec.to_f + nanosec.to_f / 1000000000.0
@@ -71,16 +82,10 @@ end
 # Keeps track of real time
 class Clock
        # Time at instanciation
-       protected var time_at_beginning : Timespec
+       protected var time_at_beginning = new Timespec.monotonic_now
 
        # Time at last time a lapse method was called
-       protected var time_at_last_lapse : Timespec
-
-       init
-       do
-               time_at_beginning = new Timespec.monotonic_now
-               time_at_last_lapse = new Timespec.monotonic_now
-       end
+       protected var time_at_last_lapse = new Timespec.monotonic_now
 
        # Smallest time frame reported by clock
        fun resolution : Timespec `{