summaryrefslogtreecommitdiffstats
path: root/base/platform_thread_posix.cc
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-19 19:17:08 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-19 19:17:08 +0000
commitee432ee0a565736be395b8729bc811212fd88bf3 (patch)
tree4922e685fc7e392d3b67029d4a821adc9d323f1a /base/platform_thread_posix.cc
parent1d14ba55e2472ad65b41423a6b8ed13b32dc206d (diff)
downloadchromium_src-ee432ee0a565736be395b8729bc811212fd88bf3.zip
chromium_src-ee432ee0a565736be395b8729bc811212fd88bf3.tar.gz
chromium_src-ee432ee0a565736be395b8729bc811212fd88bf3.tar.bz2
Revert 66719 - Reland r65996. Disallows Singletons on non-joinable thread.
Test breakages caused by this change have been fixed here or in other changelists. BUG=61753 TEST=none Review URL: http://codereview.chromium.org/5024003 TBR=willchan@chromium.org Review URL: http://codereview.chromium.org/5206005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66791 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/platform_thread_posix.cc')
-rw-r--r--base/platform_thread_posix.cc33
1 files changed, 7 insertions, 26 deletions
diff --git a/base/platform_thread_posix.cc b/base/platform_thread_posix.cc
index e442e9c..66f3928 100644
--- a/base/platform_thread_posix.cc
+++ b/base/platform_thread_posix.cc
@@ -7,11 +7,6 @@
#include <errno.h>
#include <sched.h>
-#include "base/logging.h"
-#include "base/safe_strerror_posix.h"
-#include "base/scoped_ptr.h"
-#include "base/thread_restrictions.h"
-
#if defined(OS_MACOSX)
#include <mach/mach.h>
#include <sys/resource.h>
@@ -29,27 +24,18 @@
#include <sys/nacl_syscalls.h>
#endif
+#include "base/logging.h"
+#include "base/safe_strerror_posix.h"
+
#if defined(OS_MACOSX)
namespace base {
void InitThreading();
} // namespace base
#endif
-namespace {
-
-struct ThreadParams {
- PlatformThread::Delegate* delegate;
- bool joinable;
-};
-
-} // namespace
-
-static void* ThreadFunc(void* params) {
- ThreadParams* thread_params = static_cast<ThreadParams*>(params);
- PlatformThread::Delegate* delegate = thread_params->delegate;
- if (!thread_params->joinable)
- base::ThreadRestrictions::SetSingletonAllowed(false);
- delete thread_params;
+static void* ThreadFunc(void* closure) {
+ PlatformThread::Delegate* delegate =
+ static_cast<PlatformThread::Delegate*>(closure);
delegate->ThreadMain();
return NULL;
}
@@ -188,14 +174,9 @@ bool CreateThread(size_t stack_size, bool joinable,
if (stack_size > 0)
pthread_attr_setstacksize(&attributes, stack_size);
- ThreadParams* params = new ThreadParams;
- params->delegate = delegate;
- params->joinable = joinable;
- success = !pthread_create(thread_handle, &attributes, ThreadFunc, params);
+ success = !pthread_create(thread_handle, &attributes, ThreadFunc, delegate);
pthread_attr_destroy(&attributes);
- if (!success)
- delete params;
return success;
}