Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: base/logging.cc

Issue 495002: Changes to base/ from a combination of FreeBSD and OpenBSD patches. (Closed)
Patch Set: minor tweaks Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/logging.h" 5 #include "base/logging.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <io.h> 8 #include <io.h>
9 #include <windows.h> 9 #include <windows.h>
10 typedef HANDLE FileHandle; 10 typedef HANDLE FileHandle;
11 typedef HANDLE MutexHandle; 11 typedef HANDLE MutexHandle;
12 // Windows warns on using write(). It prefers _write(). 12 // Windows warns on using write(). It prefers _write().
13 #define write(fd, buf, count) _write(fd, buf, static_cast<unsigned int>(count)) 13 #define write(fd, buf, count) _write(fd, buf, static_cast<unsigned int>(count))
14 // Windows doesn't define STDERR_FILENO. Define it here. 14 // Windows doesn't define STDERR_FILENO. Define it here.
15 #define STDERR_FILENO 2 15 #define STDERR_FILENO 2
16 #elif defined(OS_MACOSX) 16 #elif defined(OS_MACOSX)
17 #include <CoreFoundation/CoreFoundation.h> 17 #include <CoreFoundation/CoreFoundation.h>
18 #include <mach/mach.h> 18 #include <mach/mach.h>
19 #include <mach/mach_time.h> 19 #include <mach/mach_time.h>
20 #include <mach-o/dyld.h> 20 #include <mach-o/dyld.h>
21 #elif defined(OS_LINUX) 21 #elif defined(OS_POSIX)
22 #include <sys/syscall.h> 22 #include <sys/syscall.h>
23 #include <time.h> 23 #include <time.h>
24 #endif 24 #endif
25 25
26 #if defined(OS_POSIX) 26 #if defined(OS_POSIX)
27 #include <errno.h> 27 #include <errno.h>
28 #include <stdlib.h> 28 #include <stdlib.h>
29 #include <stdio.h> 29 #include <stdio.h>
30 #include <string.h> 30 #include <string.h>
31 #include <unistd.h> 31 #include <unistd.h>
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 #endif 130 #endif
131 } 131 }
132 132
133 int32 CurrentThreadId() { 133 int32 CurrentThreadId() {
134 #if defined(OS_WIN) 134 #if defined(OS_WIN)
135 return GetCurrentThreadId(); 135 return GetCurrentThreadId();
136 #elif defined(OS_MACOSX) 136 #elif defined(OS_MACOSX)
137 return mach_thread_self(); 137 return mach_thread_self();
138 #elif defined(OS_LINUX) 138 #elif defined(OS_LINUX)
139 return syscall(__NR_gettid); 139 return syscall(__NR_gettid);
140 #elif defined(OS_FREEBSD)
141 // TODO(BSD): find a better thread ID
142 return reinterpret_cast<int64>(pthread_self());
140 #endif 143 #endif
141 } 144 }
142 145
143 uint64 TickCount() { 146 uint64 TickCount() {
144 #if defined(OS_WIN) 147 #if defined(OS_WIN)
145 return GetTickCount(); 148 return GetTickCount();
146 #elif defined(OS_MACOSX) 149 #elif defined(OS_MACOSX)
147 return mach_absolute_time(); 150 return mach_absolute_time();
148 #elif defined(OS_LINUX) 151 #elif defined(OS_POSIX)
149 struct timespec ts; 152 struct timespec ts;
150 clock_gettime(CLOCK_MONOTONIC, &ts); 153 clock_gettime(CLOCK_MONOTONIC, &ts);
151 154
152 uint64 absolute_micro = 155 uint64 absolute_micro =
153 static_cast<int64>(ts.tv_sec) * 1000000 + 156 static_cast<int64>(ts.tv_sec) * 1000000 +
154 static_cast<int64>(ts.tv_nsec) / 1000; 157 static_cast<int64>(ts.tv_nsec) / 1000;
155 158
156 return absolute_micro; 159 return absolute_micro;
157 #endif 160 #endif
158 } 161 }
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 #elif defined(OS_POSIX) 222 #elif defined(OS_POSIX)
220 log_file = fopen(log_file_name->c_str(), "a"); 223 log_file = fopen(log_file_name->c_str(), "a");
221 if (log_file == NULL) 224 if (log_file == NULL)
222 return false; 225 return false;
223 #endif 226 #endif
224 } 227 }
225 228
226 return true; 229 return true;
227 } 230 }
228 231
229 #if defined(OS_LINUX) 232 #if defined(OS_POSIX) && !defined(OS_MACOSX)
230 int GetLoggingFileDescriptor() { 233 int GetLoggingFileDescriptor() {
231 // No locking needed, since this is only called by the zygote server, 234 // No locking needed, since this is only called by the zygote server,
232 // which is single-threaded. 235 // which is single-threaded.
233 if (log_file) 236 if (log_file)
234 return fileno(log_file); 237 return fileno(log_file);
235 return -1; 238 return -1;
236 } 239 }
237 #endif 240 #endif
238 241
239 void InitLogMutex() { 242 void InitLogMutex() {
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after
719 722
720 if (level == LOG_FATAL) 723 if (level == LOG_FATAL)
721 DebugUtil::BreakDebugger(); 724 DebugUtil::BreakDebugger();
722 } 725 }
723 726
724 } // namespace logging 727 } // namespace logging
725 728
726 std::ostream& operator<<(std::ostream& out, const wchar_t* wstr) { 729 std::ostream& operator<<(std::ostream& out, const wchar_t* wstr) {
727 return out << WideToUTF8(std::wstring(wstr)); 730 return out << WideToUTF8(std::wstring(wstr));
728 } 731 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698