diff options
author | jeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-15 11:55:08 +0000 |
---|---|---|
committer | jeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-15 11:55:08 +0000 |
commit | e36e86f9cf568e12a47cc779893580a09b08803a (patch) | |
tree | babbda83fb63c64565309a8fd19782f1145c72ce /base/time_posix.cc | |
parent | 86e19d84402a76c57fce85655c24f547312b6084 (diff) | |
download | chromium_src-e36e86f9cf568e12a47cc779893580a09b08803a.zip chromium_src-e36e86f9cf568e12a47cc779893580a09b08803a.tar.gz chromium_src-e36e86f9cf568e12a47cc779893580a09b08803a.tar.bz2 |
Make ProcessWatcher use kqueues on Mac.
* Port ProcessWatcher::EnsureProcessTerminated() to kqueue() APIs on OS X.
* Make ProcessWatcher::EnsureProcessGetsReaped() Linux-only, since it's only used there.
* Add a unit test.
BUG=12731
TEST=Open Chrome/Mac, open and close a few tabs. Processes shouldn't stay around.
Review URL: http://codereview.chromium.org/496007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34547 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/time_posix.cc')
-rw-r--r-- | base/time_posix.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/base/time_posix.cc b/base/time_posix.cc index c64f8e7..af7ee25 100644 --- a/base/time_posix.cc +++ b/base/time_posix.cc @@ -14,6 +14,7 @@ namespace base { +#if !defined(OS_MACOSX) // The Time routines in this file use standard POSIX routines, or almost- // standard routines in the case of timegm. We need to use a Mach-specific // function for TimeTicks::Now() on Mac OS X. @@ -174,4 +175,19 @@ TimeTicks TimeTicks::HighResNow() { return Now(); } +#endif // !OS_MACOSX + +struct timespec TimeDelta::ToTimeSpec() const { + int64 microseconds = InMicroseconds(); + time_t seconds = 0; + if (microseconds >= Time::kMicrosecondsPerSecond) { + seconds = InSeconds(); + microseconds -= seconds * Time::kMicrosecondsPerSecond; + } + struct timespec result = + {seconds, + microseconds * Time::kNanosecondsPerMicrosecond}; + return result; +} + } // namespace base |