| Index: util/mach/mach_message_server.cc
|
| diff --git a/util/mach/mach_message_server.cc b/util/mach/mach_message_server.cc
|
| index e79acfe4dcfdd2a472edab863050f522ce992339..d6b0d085d03ca9fad69aa9f98160a15f984e6a33 100644
|
| --- a/util/mach/mach_message_server.cc
|
| +++ b/util/mach/mach_message_server.cc
|
| @@ -14,35 +14,15 @@
|
|
|
| #include "util/mach/mach_message_server.h"
|
|
|
| -#include <mach/mach_time.h>
|
| -
|
| #include <limits>
|
|
|
| -#include "base/mac/mach_logging.h"
|
| #include "base/mac/scoped_mach_vm.h"
|
| +#include "util/misc/clock.h"
|
|
|
| namespace crashpad {
|
|
|
| namespace {
|
|
|
| -mach_timebase_info_data_t* TimebaseInternal() {
|
| - mach_timebase_info_data_t* timebase_info = new mach_timebase_info_data_t;
|
| - kern_return_t kr = mach_timebase_info(timebase_info);
|
| - MACH_CHECK(kr == KERN_SUCCESS, kr) << "mach_timebase_info";
|
| - return timebase_info;
|
| -}
|
| -
|
| -mach_timebase_info_data_t* Timebase() {
|
| - static mach_timebase_info_data_t* timebase_info = TimebaseInternal();
|
| - return timebase_info;
|
| -}
|
| -
|
| -uint64_t NanosecondTicks() {
|
| - uint64_t absolute_time = mach_absolute_time();
|
| - mach_timebase_info_data_t* timebase_info = Timebase();
|
| - return absolute_time * timebase_info->numer / timebase_info->denom;
|
| -}
|
| -
|
| const int kNanosecondsPerMillisecond = 1E6;
|
|
|
| // TimerRunning determines whether |deadline| has passed. If |deadline| is in
|
| @@ -51,14 +31,14 @@ const int kNanosecondsPerMillisecond = 1E6;
|
| // |deadline| is zero (indicating that no timer is in effect), |*remaining_ms|
|
| // is set to zero and this function returns true. Otherwise, this function
|
| // returns false. |deadline| is specified on the same time base as is returned
|
| -// by NanosecondTicks().
|
| +// by ClockMonotonicNanoseconds().
|
| bool TimerRunning(uint64_t deadline, mach_msg_timeout_t* remaining_ms) {
|
| if (!deadline) {
|
| *remaining_ms = MACH_MSG_TIMEOUT_NONE;
|
| return true;
|
| }
|
|
|
| - uint64_t now = NanosecondTicks();
|
| + uint64_t now = ClockMonotonicNanoseconds();
|
|
|
| if (now >= deadline) {
|
| return false;
|
| @@ -114,7 +94,7 @@ mach_msg_return_t MachMessageServer::Run(Interface* interface,
|
| deadline = 0;
|
| } else if (timeout_ms != MACH_MSG_TIMEOUT_NONE) {
|
| options |= timeout_options;
|
| - deadline = NanosecondTicks() +
|
| + deadline = ClockMonotonicNanoseconds() +
|
| static_cast<uint64_t>(timeout_ms) * kNanosecondsPerMillisecond;
|
| } else {
|
| options &= ~timeout_options;
|
|
|