Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/clock.hfa

    r6645cda r4834563  
    1010// Created On       : Thu Apr 12 14:36:06 2018
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Apr 14 17:48:25 2021
    13 // Update Count     : 20
     12// Last Modified On : Mon Jan  6 12:49:58 2020
     13// Update Count     : 9
    1414//
    1515
     
    3232
    3333static inline {
    34         void reset( Clock & clk, Duration adj ) with( clk ) {
     34        void resetClock( Clock & clk, Duration adj ) with( clk ) {
    3535                offset = adj + __timezone`s;                                    // timezone (global) is (UTC - local time) in seconds
    36         } // reset
     36        } // resetClock
    3737
    38         void ?{}( Clock & clk ) { reset( clk, (Duration){ 0 } ); }
    39         void ?{}( Clock & clk, Duration adj ) { reset( clk, adj ); }
     38        void ?{}( Clock & clk, Duration adj ) { resetClock( clk, adj ); }
    4039
    41         // System-wide clock that measures real, i.e., wall-clock) time. This clock is affected by discontinuous jumps in
    42         // the system time. For example, manual changes of the clock, and incremental adjustments performed by adjtime(3)
    43         // and NTP (daylight saving (Fall back).
    44         Duration resolutionNsec() {
     40        Duration getResNsec() {
    4541                struct timespec res;
    4642                clock_getres( CLOCK_REALTIME, &res );
    4743                return ((int64_t)res.tv_sec * TIMEGRAN + res.tv_nsec)`ns;
    48         } // resolutionNsec
     44        } // getRes
    4945
    50         Duration resolution() {
     46        Duration getRes() {
    5147                struct timespec res;
    5248                clock_getres( CLOCK_REALTIME_COARSE, &res );
    5349                return ((int64_t)res.tv_sec * TIMEGRAN + res.tv_nsec)`ns;
    54         } // resolution
     50        } // getRes
    5551
    56         Time timeNsec() {                                                                       // with nanoseconds
     52        Time getTimeNsec() {                                                            // with nanoseconds
    5753                timespec curr;
    5854                clock_gettime( CLOCK_REALTIME, &curr );
    5955                return (Time){ curr };
    60         } // timeNsec
     56        } // getTimeNsec
    6157
    62         Time time() {                                                                           // without nanoseconds
     58        Time getTime() {                                                                        // without nanoseconds
    6359                timespec curr;
    6460                clock_gettime( CLOCK_REALTIME_COARSE, &curr );
    6561                curr.tv_nsec = 0;
    6662                return (Time){ curr };
    67         } // time
     63        } // getTime
    6864
    69         Time time( Clock & clk ) with( clk ) {
    70                 return time() + offset;
    71         } // time
     65        Time getTime( Clock & clk ) with( clk ) {
     66                return getTime() + offset;
     67        } // getTime
    7268
    7369        Time ?()( Clock & clk ) with( clk ) {                           // alternative syntax
    74                 return time() + offset;
    75         } // ?()
     70                return getTime() + offset;
     71        } // getTime
    7672
    77         timeval time( Clock & clk ) {
     73        timeval getTime( Clock & clk ) {
    7874                return (timeval){ clk() };
    79         } // time
     75        } // getTime
    8076
    81         tm time( Clock & clk ) with( clk ) {
     77        tm getTime( Clock & clk ) with( clk ) {
    8278                tm ret;
    83                 localtime_r( time( clk ).tv_sec, &ret );
     79                localtime_r( getTime( clk ).tv_sec, &ret );
    8480                return ret;
    85         } // time
     81        } // getTime
    8682
    87         // CFA processor CPU-time watch that ticks when the processor (kernel thread) is running. This watch is affected by
    88         // discontinuous jumps when the OS is not running the kernal thread. A duration is returned because the value is
    89         // relative and cannot be converted to real-time (wall-clock) time.
    90         Duration processor() {
     83        Time getCPUTime() {
    9184                timespec ts;
    9285                clock_gettime( CLOCK_THREAD_CPUTIME_ID, &ts );
    93                 return (Duration){ ts };
    94         } // processor
    95 
    96         // Program CPU-time watch measures CPU time consumed by all processors (kernel threads) in the UNIX process.  This
    97         // watch is affected by discontinuous jumps when the OS is not running the kernel threads. A duration is returned
    98         // because the value is relative and cannot be converted to real-time (wall-clock) time.
    99         Duration program() {
    100                 timespec ts;
    101                 clock_gettime( CLOCK_PROCESS_CPUTIME_ID, &ts );
    102                 return (Duration){ ts };
    103         } // program
    104 
    105         // Monotonic stopwatch starting at machine boot and includes system suspension. This watch is unaffected by
    106         // discontinuous jumps resulting from manual changes of the clock, and incremental adjustments performed by
    107         // adjtime(3) and NTP (Fall back). A duration is returned because the value is relative and cannot be converted to
    108         // real-time (wall-clock) time.
    109         Duration boot() {
    110                 timespec ts;
    111                 clock_gettime( CLOCK_BOOTTIME, &ts );
    112                 return (Duration){ ts };
    113         } // boot
     86                return (Time){ ts };
     87    } // getCPUTime
    11488} // distribution
    11589
Note: See TracChangeset for help on using the changeset viewer.