OLD | NEW |
1 // Copyright 2014 The Crashpad Authors. All rights reserved. | 1 // Copyright 2014 The Crashpad Authors. All rights reserved. |
2 // | 2 // |
3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
6 // | 6 // |
7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
8 // | 8 // |
9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
12 // See the License for the specific language governing permissions and | 12 // See the License for the specific language governing permissions and |
13 // limitations under the License. | 13 // limitations under the License. |
14 | 14 |
15 #ifndef CRASHPAD_UTIL_MISC_CLOCK_H_ | 15 #ifndef CRASHPAD_UTIL_MISC_CLOCK_H_ |
16 #define CRASHPAD_UTIL_MISC_CLOCK_H_ | 16 #define CRASHPAD_UTIL_MISC_CLOCK_H_ |
17 | 17 |
18 #include <stdint.h> | 18 #include <stdint.h> |
19 | 19 |
| 20 #include "build/build_config.h" |
| 21 |
20 namespace crashpad { | 22 namespace crashpad { |
21 | 23 |
22 //! \brief Returns the value of the system’s monotonic clock. | 24 //! \brief Returns the value of the system’s monotonic clock. |
23 //! | 25 //! |
24 //! The monotonic clock is a tick counter whose epoch is unspecified. It is a | 26 //! The monotonic clock is a tick counter whose epoch is unspecified. It is a |
25 //! monotonically-increasing clock that cannot be set, and never jumps backwards | 27 //! monotonically-increasing clock that cannot be set, and never jumps backwards |
26 //! on a running system. The monotonic clock may stop while the system is | 28 //! on a running system. The monotonic clock may stop while the system is |
27 //! sleeping, and it may be reset when the system starts up. This clock is | 29 //! sleeping, and it may be reset when the system starts up. This clock is |
28 //! suitable for computing durations of events. Subject to the underlying | 30 //! suitable for computing durations of events. Subject to the underlying |
29 //! clock’s resolution, successive calls to this function will result in a | 31 //! clock’s resolution, successive calls to this function will result in a |
30 //! series of increasing values. | 32 //! series of increasing values. |
31 //! | 33 //! |
32 //! \return The value of the system’s monotonic clock, in nanoseconds. | 34 //! \return The value of the system’s monotonic clock, in nanoseconds. |
33 uint64_t ClockMonotonicNanoseconds(); | 35 uint64_t ClockMonotonicNanoseconds(); |
34 | 36 |
| 37 #if !defined(OS_WIN) // Not implemented on Windows yet. |
| 38 |
35 //! \brief Sleeps for the specified duration. | 39 //! \brief Sleeps for the specified duration. |
36 //! | 40 //! |
37 //! \param[in] nanoseconds The number of nanoseconds to sleep. The actual sleep | 41 //! \param[in] nanoseconds The number of nanoseconds to sleep. The actual sleep |
38 //! may be slightly longer due to latencies and timer resolution. | 42 //! may be slightly longer due to latencies and timer resolution. |
39 //! | 43 //! |
40 //! This function is resilient against the underlying `nanosleep()` system call | 44 //! This function is resilient against the underlying `nanosleep()` system call |
41 //! being interrupted by a signal. | 45 //! being interrupted by a signal. |
42 void SleepNanoseconds(uint64_t nanoseconds); | 46 void SleepNanoseconds(uint64_t nanoseconds); |
43 | 47 |
| 48 #endif |
| 49 |
44 } // namespace crashpad | 50 } // namespace crashpad |
45 | 51 |
46 #endif // CRASHPAD_UTIL_MISC_CLOCK_H_ | 52 #endif // CRASHPAD_UTIL_MISC_CLOCK_H_ |
OLD | NEW |