diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-23 00:25:29 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-23 00:25:29 +0000 |
commit | 0049398c72b3fd711c825d477e0db6943f8f5db6 (patch) | |
tree | f3d923a985aaf1f2148ba0cd7a69925a8ea21e0a /base/platform_thread.h | |
parent | 1ebed56434c220f82cf220bbb72a136fea962c87 (diff) | |
download | chromium_src-0049398c72b3fd711c825d477e0db6943f8f5db6.zip chromium_src-0049398c72b3fd711c825d477e0db6943f8f5db6.tar.gz chromium_src-0049398c72b3fd711c825d477e0db6943f8f5db6.tar.bz2 |
Use PlatformThreadId, not int when dealing with thread ids.
Windows uses a DWORD (unsigned long) for thread ids and POSIX uses a
pid_t (int on Linux) for the same. In the code, we are currently
stuffing thread ids into an int which is dangerous on Windows (because
DWORDS can exceed an int and wrap) and will break if pid_t is ever !=
int.
This change changes all the places where we currently have an int to
use a new typedef, PlatformThreadId. This change also needs to occur
for process ids, but I'm not doing that in this CL.
Review URL: http://codereview.chromium.org/18677
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8525 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/platform_thread.h')
-rw-r--r-- | base/platform_thread.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/base/platform_thread.h b/base/platform_thread.h index a999e8d..1ae9c0f 100644 --- a/base/platform_thread.h +++ b/base/platform_thread.h @@ -16,17 +16,26 @@ // should not initialize it to a value, like 0. If it's a member variable, the // constructor can safely "value initialize" using () in the initializer list. #if defined(OS_WIN) +#include <windows.h> +typedef DWORD PlatformThreadId; typedef void* PlatformThreadHandle; // HANDLE #elif defined(OS_POSIX) #include <pthread.h> typedef pthread_t PlatformThreadHandle; +#if defined(OS_LINUX) +#include <unistd.h> +typedef pid_t PlatformThreadId; +#elif defined(OS_MACOSX) +#include <mach/mach.h> +typedef mach_port_t PlatformThreadId; +#endif #endif // A namespace for low-level thread functions. class PlatformThread { public: // Gets the current thread id, which may be useful for logging purposes. - static int CurrentId(); + static PlatformThreadId CurrentId(); // Yield the current thread so another thread can be scheduled. static void YieldCurrentThread(); |