summaryrefslogtreecommitdiffstats
path: root/base/time_posix.cc
diff options
context:
space:
mode:
authorjeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-15 11:55:08 +0000
committerjeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-15 11:55:08 +0000
commite36e86f9cf568e12a47cc779893580a09b08803a (patch)
treebabbda83fb63c64565309a8fd19782f1145c72ce /base/time_posix.cc
parent86e19d84402a76c57fce85655c24f547312b6084 (diff)
downloadchromium_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.cc16
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