resolved conflicts for merge of c7e6b93a to master

Change-Id: I4b791f37193727a0306214645f2f98cdf218cad0
This commit is contained in:
John Reck
2015-02-04 14:47:23 -08:00
4 changed files with 13 additions and 13 deletions

View File

@@ -492,7 +492,9 @@ void PathCache::precache(const SkPath* path, const SkPaint* paint) {
if (mProcessor == nullptr) {
mProcessor = new PathProcessor(Caches::getInstance());
}
mProcessor->add(task);
if (!mProcessor->add(task)) {
mProcessor->process(task);
}
}
}

View File

@@ -385,7 +385,9 @@ void TessellationCache::precacheShadows(const Matrix4* drawTransform, const Rect
if (mShadowProcessor == nullptr) {
mShadowProcessor = new ShadowProcessor(Caches::getInstance());
}
mShadowProcessor->add(task);
if (!mShadowProcessor->add(task)) {
mShadowProcessor->process(task);
}
task->incStrong(nullptr); // not using sp<>s, so manually ref while in the cache
mShadowCache.put(key, task.get());
@@ -421,7 +423,9 @@ TessellationCache::Buffer* TessellationCache::getOrCreateBuffer(
if (mProcessor == nullptr) {
mProcessor = new TessellationProcessor(Caches::getInstance());
}
mProcessor->add(task);
if (!mProcessor->add(task)) {
mProcessor->process(task);
}
mCache.put(entry, buffer);
}
return buffer;

View File

@@ -105,6 +105,8 @@ bool TaskManager::WorkerThread::threadLoop() {
bool TaskManager::WorkerThread::addTask(TaskWrapper task) {
if (!isRunning()) {
run(mName.string(), PRIORITY_DEFAULT);
} else if (exitPending()) {
return false;
}
Mutex::Autolock l(mLock);
@@ -120,10 +122,6 @@ size_t TaskManager::WorkerThread::getTaskCount() const {
}
void TaskManager::WorkerThread::exit() {
{
Mutex::Autolock l(mLock);
mTasks.clear();
}
requestExit();
mSignal.signal();
}

View File

@@ -30,9 +30,6 @@ public:
TaskProcessorBase() { }
virtual ~TaskProcessorBase() { };
private:
friend class TaskManager;
virtual void process(const sp<TaskBase>& task) = 0;
};
@@ -44,9 +41,6 @@ public:
bool add(const sp<Task<T> >& task);
virtual void onProcess(const sp<Task<T> >& task) = 0;
private:
virtual void process(const sp<TaskBase>& task) override {
sp<Task<T> > realTask = static_cast<Task<T>* >(task.get());
// This is the right way to do it but sp<> doesn't play nice
@@ -54,6 +48,8 @@ private:
onProcess(realTask);
}
virtual void onProcess(const sp<Task<T> >& task) = 0;
TaskManager* mManager;
};