gfx/skia/trunk/src/utils/SkThreadUtils_pthread_mach.cpp

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:667b4371adf2
1 /*
2 * Copyright 2012 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8 #include "SkThreadUtils.h"
9 #include "SkThreadUtils_pthread.h"
10
11 #include <mach/mach.h>
12 #include <mach/thread_policy.h>
13 #include <pthread.h>
14
15 bool SkThread::setProcessorAffinity(unsigned int processor) {
16 SkThread_PThreadData* pthreadData = static_cast<SkThread_PThreadData*>(fData);
17 if (!pthreadData->fValidPThread) {
18 return false;
19 }
20
21 mach_port_t tid = pthread_mach_thread_np(pthreadData->fPThread);
22
23 thread_affinity_policy_data_t policy;
24 policy.affinity_tag = processor;
25
26 return 0 == thread_policy_set(tid,
27 THREAD_AFFINITY_POLICY,
28 (thread_policy_t) &policy,
29 THREAD_AFFINITY_POLICY_COUNT);
30 }

mercurial