diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-06 20:35:45 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-06 20:35:45 +0000 |
commit | 5846da03b8e2673d6be22f317a4eba89db9a03ed (patch) | |
tree | e732d84d13bd29d608f184f9d58671c4feed82e0 /base/worker_pool_win.cc | |
parent | ea8395df79a1585f765946a002676cf2bf1c65c5 (diff) | |
download | chromium_src-5846da03b8e2673d6be22f317a4eba89db9a03ed.zip chromium_src-5846da03b8e2673d6be22f317a4eba89db9a03ed.tar.gz chromium_src-5846da03b8e2673d6be22f317a4eba89db9a03ed.tar.bz2 |
In preparation for making changes to worker_pool_linux.cc.
Review URL: http://codereview.chromium.org/39081
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11149 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/worker_pool_win.cc')
-rw-r--r-- | base/worker_pool_win.cc | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/base/worker_pool_win.cc b/base/worker_pool_win.cc new file mode 100644 index 0000000..4bf0947 --- /dev/null +++ b/base/worker_pool_win.cc @@ -0,0 +1,35 @@ +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/worker_pool.h" + +#include "base/task.h" + +namespace { + +DWORD CALLBACK WorkItemCallback(void* param) { + Task* task = static_cast<Task*>(param); + task->Run(); + delete task; + return 0; +} + +} // namespace + +bool WorkerPool::PostTask(const tracked_objects::Location& from_here, + Task* task, bool task_is_slow) { + task->SetBirthPlace(from_here); + + ULONG flags = 0; + if (task_is_slow) + flags |= WT_EXECUTELONGFUNCTION; + + if (!QueueUserWorkItem(WorkItemCallback, task, flags)) { + DLOG(ERROR) << "QueueUserWorkItem failed: " << GetLastError(); + delete task; + return false; + } + + return true; +} |