source: src/Common/Stats/Time.h @ 79eaeb7

aaron-thesisarm-ehcleanup-dtorsenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprpersistent-indexerpthread-emulationqualifiedEnum
Last change on this file since 79eaeb7 was 79eaeb7, checked in by tdelisle <tdelisle@…>, 4 years ago

Improved printing, parent printing still incorrect

  • Property mode set to 100644
File size: 1.2 KB
Line 
1//
2// Cforall Version 1.0.0 Copyright (C) 2019 University of Waterloo
3//
4// The contents of this file are covered under the licence agreement in the
5// file "LICENCE" distributed with Cforall.
6//
7// Time.h --
8//
9// Author           : Thierry Delisle
10// Created On       : Fri Mar 01 15:14:11 2019
11// Last Modified By :
12// Last Modified On :
13// Update Count     :
14//
15
16#pragma once
17
18#include "Common/Stats/Base.h"
19
20#if defined( NO_STATISTICS )
21        #define NO_TIME_STATISTICS
22#endif
23
24namespace Stats {
25        namespace Time {
26#               if defined(NO_TIME_STATISTICS)
27                        inline void StartGlobal() {}
28
29                        inline void StartBlock(const char * const) {}
30                        inline void StopBlock() {}
31
32                        inline void print() {}
33
34                        struct BlockGuard {
35                                BlockGuard(const char * const) {}
36                                ~BlockGuard() {}
37                        };
38
39                        template<typename func_t>
40                        inline void TimeBLock(const char *, func_t) {}
41#               else
42                        void StartGlobal();
43
44                        void StartBlock(const char * const name);
45                        void StopBlock();
46
47                        void print();
48
49                        struct BlockGuard {
50                                BlockGuard(const char * const name ) { StartBlock(name); }
51                                ~BlockGuard() { StopBlock(); }
52                        };
53
54                        template<typename func_t>
55                        inline void TimeBLock(const char * name, func_t func) {
56                                BlockGuard guard(name);
57                                func();
58                        }
59#               endif
60        }
61}
Note: See TracBrowser for help on using the repository browser.