| Index: third_party/tcmalloc/chromium/src/windows/port.h
|
| diff --git a/third_party/tcmalloc/chromium/src/windows/port.h b/third_party/tcmalloc/chromium/src/windows/port.h
|
| index 0faba01c2cac52798bce505ef4798cde21a3c385..e9a020656b36fd63ea3251de42a8d0bc4a0e2900 100644
|
| --- a/third_party/tcmalloc/chromium/src/windows/port.h
|
| +++ b/third_party/tcmalloc/chromium/src/windows/port.h
|
| @@ -65,14 +65,15 @@
|
|
|
| /*
|
| * 4018: signed/unsigned mismatch is common (and ok for signed_i < unsigned_i)
|
| - * 4244: otherwise we get problems when substracting two size_t's to an int
|
| + * 4244: otherwise we get problems when subtracting two size_t's to an int
|
| * 4288: VC++7 gets confused when a var is defined in a loop and then after it
|
| * 4267: too many false positives for "conversion gives possible data loss"
|
| * 4290: it's ok windows ignores the "throw" directive
|
| * 4996: Yes, we're ok using "unsafe" functions like vsnprintf and getenv()
|
| + * 4146: internal_logging.cc intentionally negates an unsigned value
|
| */
|
| #ifdef _MSC_VER
|
| -#pragma warning(disable:4018 4244 4288 4267 4290 4996)
|
| +#pragma warning(disable:4018 4244 4288 4267 4290 4996 4146)
|
| #endif
|
|
|
| #ifndef __cplusplus
|
| @@ -165,6 +166,10 @@ EXTERN_C int perftools_pthread_once(pthread_once_t *once_control,
|
| #endif /* __cplusplus */
|
| #endif /* HAVE_PTHREAD */
|
|
|
| +inline void sched_yield(void) {
|
| + Sleep(0);
|
| +}
|
| +
|
| /*
|
| * __declspec(thread) isn't usable in a dll opened via LoadLibrary().
|
| * But it doesn't work to LoadLibrary() us anyway, because of all the
|
| @@ -260,7 +265,7 @@ class SpinLockHolder { // Acquires a spinlock for as long as the scope lasts
|
| #define MAP_PRIVATE MEM_COMMIT
|
| #define MAP_SHARED MEM_RESERVE /* value of this #define is 100% arbitrary */
|
|
|
| -#if __STDC__
|
| +#if __STDC__ && !defined(__MINGW32__)
|
| typedef _off_t off_t;
|
| #endif
|
|
|
| @@ -372,7 +377,6 @@ inline char *getcwd(char *buf, size_t size) {
|
| inline int mkdir(const char *pathname, int) {
|
| return _mkdir(pathname);
|
| }
|
| -#endif
|
|
|
| inline FILE *popen(const char *command, const char *type) {
|
| return _popen(command, type);
|
| @@ -380,13 +384,14 @@ inline FILE *popen(const char *command, const char *type) {
|
| inline int pclose(FILE *stream) {
|
| return _pclose(stream);
|
| }
|
| +#endif
|
|
|
| EXTERN_C PERFTOOLS_DLL_DECL void WriteToStderr(const char* buf, int len);
|
|
|
| /* ----------------------------------- SYSTEM/PROCESS */
|
|
|
| typedef int pid_t;
|
| -#if __STDC__
|
| +#if __STDC__ && !defined(__MINGW32__)
|
| inline pid_t getpid(void) { return _getpid(); }
|
| #endif
|
| inline pid_t getppid(void) { return 0; }
|
| @@ -410,10 +415,14 @@ inline unsigned int sleep(unsigned int seconds) {
|
| return 0;
|
| }
|
|
|
| +// mingw64 seems to define timespec (though mingw.org mingw doesn't),
|
| +// protected by the _TIMESPEC_DEFINED macro.
|
| +#ifndef _TIMESPEC_DEFINED
|
| struct timespec {
|
| int tv_sec;
|
| int tv_nsec;
|
| };
|
| +#endif
|
|
|
| inline int nanosleep(const struct timespec *req, struct timespec *rem) {
|
| Sleep(req->tv_sec * 1000 + req->tv_nsec / 1000000);
|
|
|